当前位置:网站首页>PyQt5 rapid development and actual combat 10.1 Get city weather forecast
PyQt5 rapid development and actual combat 10.1 Get city weather forecast
2022-07-31 12:32:00 【Ding Jiaxiong】
PyQt5快速开发与实战
文章目录
10. 第10章 PyQt5 实战一:经典程序开发
10.1 Get city weather forecast
发送一个HTTP请求,Then parse the result returned by the request,Finally, the request result is displayed in the window.
10.1.1 获取天气数据
爬虫
Get the weather forecast from the websiteHTML页面,然后使用 XPath或 BeautifulSoap解析 HTML页面的内容
Provided by the weather forecast websiteAPI
直接获取结构化数据
安装Requests库
pip install requests
10.1.2 获取不同城市的天气预报API
请求地址:http://www.weather.com.cn/data/sk/城市代码.html
城市代码:
{
"城市代码": [{
"省": "四川",
"市": [{
"市名": "成都",
"编码": "101270101"
}, {
"市名": "自贡",
"编码": "101270301"
}, {
"市名": "绵阳",
"编码": "101270401"
}, {
"市名": "南充",
"编码": "101270501"
}, {
"市名": "达州",
"编码": "101270601"
}, {
"市名": "遂宁",
"编码": "101270701"
}, {
"市名": "广安",
"编码": "101270801"
}, {
"市名": "巴中",
"编码": "101270901"
}, {
"市名": "泸州",
"编码": "101271001"
}, {
"市名": "宜宾",
"编码": "101271101"
}, {
"市名": "内江",
"编码": "101271201"
}, {
"市名": "资阳",
"编码": "101271301"
}, {
"市名": "乐山",
"编码": "101271401"
}, {
"市名": "眉山",
"编码": "101271501"
}, {
"市名": "凉山",
"编码": "101271601"
}, {
"市名": "雅安",
"编码": "101271701"
}, {
"市名": "甘孜",
"编码": "101271801"
}, {
"市名": "阿坝",
"编码": "101271901"
}, {
"市名": "德阳",
"编码": "101272001"
}, {
"市名": "广元",
"编码": "101272101"
}, {
"市名": "攀枝花",
"编码": "101270201"
}]
}, {
"省": "江苏",
"市": [{
"市名": "南京",
"编码": "101190101"
}, {
"市名": "镇江",
"编码": "101190301"
}, {
"市名": "苏州",
"编码": "101190401"
}, {
"市名": "南通",
"编码": "101190501"
}, {
"市名": "扬州",
"编码": "101190601"
}, {
"市名": "宿迁",
"编码": "101191301"
}, {
"市名": "徐州",
"编码": "101190801"
}, {
"市名": "淮安",
"编码": "101190901"
}, {
"市名": "连云港",
"编码": "101191001"
}, {
"市名": "常州",
"编码": "101191101"
}, {
"市名": "泰州",
"编码": "101191201"
}, {
"市名": "无锡",
"编码": "101190201"
}, {
"市名": "盐城",
"编码": "101190701"
}]
}, {
"省": "重庆",
"市": [{
"市名": "重庆",
"编码": "101040100"
}, {
"市名": "合川",
"编码": "101040300"
}, {
"市名": "南川",
"编码": "101040400"
}, {
"市名": "江津",
"编码": "101040500"
}, {
"市名": "万盛",
"编码": "101040600"
}, {
"市名": "渝北",
"编码": "101040700"
}, {
"市名": "北碚",
"编码": "101040800"
}, {
"市名": "巴南",
"编码": "101040900"
}, {
"市名": "长寿",
"编码": "101041000"
}, {
"市名": "黔江",
"编码": "101041100"
}, {
"市名": "万州天城",
"编码": "101041200"
}, {
"市名": "万州龙宝",
"编码": "101041300"
}, {
"市名": "涪陵",
"编码": "101041400"
}, {
"市名": "开县",
"编码": "101041500"
}, {
"市名": "城口",
"编码": "101041600"
}, {
"市名": "云阳",
"编码": "101041700"
}, {
"市名": "巫溪",
"编码": "101041800"
}, {
"市名": "奉节",
"编码": "101041900"
}, {
"市名": "巫山",
"编码": "101042000"
}, {
"市名": "潼南",
"编码": "101042100"
}, {
"市名": "垫江",
"编码": "101042200"
}, {
"市名": "梁平",
"编码": "101042300"
}, {
"市名": "忠县",
"编码": "101042400"
}, {
"市名": "石柱",
"编码": "101042500"
}, {
"市名": "大足",
"编码": "101042600"
}, {
"市名": "荣昌",
"编码": "101042700"
}, {
"市名": "铜梁",
"编码": "101042800"
}, {
"市名": "璧山",
"编码": "101042900"
}, {
"市名": "丰都",
"编码": "101043000"
}, {
"市名": "武隆",
"编码": "101043100"
}, {
"市名": "彭水",
"编码": "101043200"
}, {
"市名": "綦江",
"编码": "101043300"
}, {
"市名": "酉阳",
"编码": "101043400"
}, {
"市名": "秀山",
"编码": "101043600"
}, {
"市名": "沙坪坝",
"编码": "101043700"
}, {
"市名": "永川",
"编码": "101040200"
}]
}, {
"省": "北京",
"市": [{
"市名": "北京",
"编码": "101010100"
}, {
"市名": "朝阳",
"编码": "101010300"
}, {
"市名": "顺义",
"编码": "101010400"
}, {
"市名": "怀柔",
"编码": "101010500"
}, {
"市名": "通州",
"编码": "101010600"
}, {
"市名": "昌平",
"编码": "101010700"
}, {
"市名": "延庆",
"编码": "101010800"
}, {
"市名": "丰台",
"编码": "101010900"
}, {
"市名": "石景山",
"编码": "101011000"
}, {
"市名": "大兴",
"编码": "101011100"
}, {
"市名": "房山",
"编码": "101011200"
}, {
"市名": "密云",
"编码": "101011300"
}, {
"市名": "门头沟",
"编码": "101011400"
}, {
"市名": "平谷",
"编码": "101011500"
}, {
"市名": "八达岭",
"编码": "101011600"
}, {
"市名": "佛爷顶",
"编码": "101011700"
}, {
"市名": "汤河口",
"编码": "101011800"
}, {
"市名": "密云上甸子",
"编码": "101011900"
}, {
"市名": "斋堂",
"编码": "101012000"
}, {
"市名": "霞云岭",
"编码": "101012100"
}, {
"市名": "北京城区",
"编码": "101012200"
}, {
"市名": "海淀",
"编码": "101010200"
}]
}, {
"省": "福建",
"市": [{
"市名": "福州",
"编码": "101230101"
}, {
"市名": "泉州",
"编码": "101230501"
}, {
"市名": "漳州",
"编码": "101230601"
}, {
"市名": "龙岩",
"编码": "101230701"
}, {
"市名": "晋江",
"编码": "101230509"
}, {
"市名": "南平",
"编码": "101230901"
}, {
"市名": "厦门",
"编码": "101230201"
}, {
"市名": "宁德",
"编码": "101230301"
}, {
"市名": "莆田",
"编码": "101230401"
}, {
"市名": "三明",
"编码": "101230801"
}]
}, {
"省": "甘肃",
"市": [{
"市名": "兰州",
"编码": "101160101"
}, {
"市名": "平凉",
"编码": "101160301"
}, {
"市名": "庆阳",
"编码": "101160401"
}, {
"市名": "武威",
"编码": "101160501"
}, {
"市名": "金昌",
"编码": "101160601"
}, {
"市名": "嘉峪关",
"编码": "101161401"
}, {
"市名": "酒泉",
"编码": "101160801"
}, {
"市名": "天水",
"编码": "101160901"
}, {
"市名": "武都",
"编码": "101161001"
}, {
"市名": "临夏",
"编码": "101161101"
}, {
"市名": "合作",
"编码": "101161201"
}, {
"市名": "白银",
"编码": "101161301"
}, {
"市名": "定西",
"编码": "101160201"
}, {
"市名": "张掖",
"编码": "101160701"
}]
}, {
"省": "广东",
"市": [{
"市名": "广州",
"编码": "101280101"
}, {
"市名": "惠州",
"编码": "101280301"
}, {
"市名": "梅州",
"编码": "101280401"
}, {
"市名": "汕头",
"编码": "101280501"
}, {
"市名": "深圳",
"编码": "101280601"
}, {
"市名": "珠海",
"编码": "101280701"
}, {
"市名": "佛山",
"编码": "101280800"
}, {
"市名": "肇庆",
"编码": "101280901"
}, {
"市名": "湛江",
"编码": "101281001"
}, {
"市名": "江门",
"编码": "101281101"
}, {
"市名": "河源",
"编码": "101281201"
}, {
"市名": "清远",
"编码": "101281301"
}, {
"市名": "云浮",
"编码": "101281401"
}, {
"市名": "潮州",
"编码": "101281501"
}, {
"市名": "东莞",
"编码": "101281601"
}, {
"市名": "中山",
"编码": "101281701"
}, {
"市名": "阳江",
"编码": "101281801"
}, {
"市名": "揭阳",
"编码": "101281901"
}, {
"市名": "茂名",
"编码": "101282001"
}, {
"市名": "汕尾",
"编码": "101282101"
}, {
"市名": "韶关",
"编码": "101280201"
}]
}, {
"省": "天津市",
"市": [{
"市名": "天津",
"编码": "101030100"
}, {
"市名": "宝坻",
"编码": "101030300"
}, {
"市名": "东丽",
"编码": "101030400"
}, {
"市名": "西青",
"编码": "101030500"
}, {
"市名": "北辰",
"编码": "101030600"
}, {
"市名": "蓟县",
"编码": "101031400"
}, {
"市名": "汉沽",
"编码": "101030800"
}, {
"市名": "静海",
"编码": "101030900"
}, {
"市名": "津南",
"编码": "101031000"
}, {
"市名": "塘沽",
"编码": "101031100"
}, {
"市名": "大港",
"编码": "101031200"
}, {
"市名": "武清",
"编码": "101030200"
}, {
"市名": "宁河",
"编码": "101030700"
}]
}, {
"省": "上海",
"市": [{
"市名": "上海",
"编码": "101020100"
}, {
"市名": "宝山",
"编码": "101020300"
}, {
"市名": "嘉定",
"编码": "101020500"
}, {
"市名": "南汇",
"编码": "101020600"
}, {
"市名": "浦东",
"编码": "101021300"
}, {
"市名": "青浦",
"编码": "101020800"
}, {
"市名": "松江",
"编码": "101020900"
}, {
"市名": "奉贤",
"编码": "101021000"
}, {
"市名": "崇明",
"编码": "101021100"
}, {
"市名": "徐家汇",
"编码": "101021200"
}, {
"市名": "闵行",
"编码": "101020200"
}, {
"市名": "金山",
"编码": "101020700"
}]
}, {
"省": "河北",
"市": [{
"市名": "石家庄",
"编码": "101090101"
}, {
"市名": "张家口",
"编码": "101090301"
}, {
"市名": "承德",
"编码": "101090402"
}, {
"市名": "唐山",
"编码": "101090501"
}, {
"市名": "秦皇岛",
"编码": "101091101"
}, {
"市名": "沧州",
"编码": "101090701"
}, {
"市名": "衡水",
"编码": "101090801"
}, {
"市名": "邢台",
"编码": "101090901"
}, {
"市名": "邯郸",
"编码": "101091001"
}, {
"市名": "保定",
"编码": "101090201"
}, {
"市名": "廊坊",
"编码": "101090601"
}]
}, {
"省": "河南",
"市": [{
"市名": "郑州",
"编码": "101180101"
}, {
"市名": "新乡",
"编码": "101180301"
}, {
"市名": "许昌",
"编码": "101180401"
}, {
"市名": "平顶山",
"编码": "101180501"
}, {
"市名": "信阳",
"编码": "101180601"
}, {
"市名": "南阳",
"编码": "101180701"
}, {
"市名": "开封",
"编码": "101180801"
}, {
"市名": "洛阳",
"编码": "101180901"
}, {
"市名": "商丘",
"编码": "101181001"
}, {
"市名": "焦作",
"编码": "101181101"
}, {
"市名": "鹤壁",
"编码": "101181201"
}, {
"市名": "濮阳",
"编码": "101181301"
}, {
"市名": "周口",
"编码": "101181401"
}, {
"市名": "漯河",
"编码": "101181501"
}, {
"市名": "驻马店",
"编码": "101181601"
}, {
"市名": "三门峡",
"编码": "101181701"
}, {
"市名": "济源",
"编码": "101181801"
}, {
"市名": "安阳",
"编码": "101180201"
}]
}, {
"省": "安徽",
"市": [{
"市名": "合肥",
"编码": "101220101"
}, {
"市名": "芜湖",
"编码": "101220301"
}, {
"市名": "淮南",
"编码": "101220401"
}, {
"市名": "马鞍山",
"编码": "101220501"
}, {
"市名": "安庆",
"编码": "101220601"
}, {
"市名": "宿州",
"编码": "101220701"
}, {
"市名": "阜阳",
"编码": "101220801"
}, {
"市名": "亳州",
"编码": "101220901"
}, {
"市名": "黄山",
"编码": "101221001"
}, {
"市名": "滁州",
"编码": "101221101"
}, {
"市名": "淮北",
"编码": "101221201"
}, {
"市名": "铜陵",
"编码": "101221301"
}, {
"市名": "宣城",
"编码": "101221401"
}, {
"市名": "六安",
"编码": "101221501"
}, {
"市名": "巢湖",
"编码": "101221601"
}, {
"市名": "池州",
"编码": "101221701"
}, {
"市名": "蚌埠",
"编码": "101220201"
}]
}, {
"省": "浙江",
"市": [{
"市名": "杭州",
"编码": "101210101"
}, {
"市名": "舟山",
"编码": "101211101"
}, {
"市名": "湖州",
"编码": "101210201"
}, {
"市名": "嘉兴",
"编码": "101210301"
}, {
"市名": "金华",
"编码": "101210901"
}, {
"市名": "绍兴",
"编码": "101210501"
}, {
"市名": "台州",
"编码": "101210601"
}, {
"市名": "温州",
"编码": "101210701"
}, {
"市名": "丽水",
"编码": "101210801"
}, {
"市名": "衢州",
"编码": "101211001"
}, {
"市名": "宁波",
"编码": "101210401"
}]
}, {
"省": "广西",
"市": [{
"市名": "南宁",
"编码": "101300101"
}, {
"市名": "柳州",
"编码": "101300301"
}, {
"市名": "来宾",
"编码": "101300401"
}, {
"市名": "桂林",
"编码": "101300501"
}, {
"市名": "梧州",
"编码": "101300601"
}, {
"市名": "防城港",
"编码": "101301401"
}, {
"市名": "贵港",
"编码": "101300801"
}, {
"市名": "玉林",
"编码": "101300901"
}, {
"市名": "百色",
"编码": "101301001"
}, {
"市名": "钦州",
"编码": "101301101"
}, {
"市名": "河池",
"编码": "101301201"
}, {
"市名": "北海",
"编码": "101301301"
}, {
"市名": "崇左",
"编码": "101300201"
}, {
"市名": "贺州",
"编码": "101300701"
}]
}, {
"省": "贵州",
"市": [{
"市名": "贵阳",
"编码": "101260101"
}, {
"市名": "安顺",
"编码": "101260301"
}, {
"市名": "都匀",
"编码": "101260401"
}, {
"市名": "兴义",
"编码": "101260906"
}, {
"市名": "铜仁",
"编码": "101260601"
}, {
"市名": "毕节",
"编码": "101260701"
}, {
"市名": "六盘水",
"编码": "101260801"
}, {
"市名": "遵义",
"编码": "101260201"
}, {
"市名": "凯里",
"编码": "101260501"
}]
}, {
"省": "云南",
"市": [{
"市名": "昆明",
"编码": "101290101"
}, {
"市名": "红河",
"编码": "101290301"
}, {
"市名": "文山",
"编码": "101290601"
}, {
"市名": "玉溪",
"编码": "101290701"
}, {
"市名": "楚雄",
"编码": "101290801"
}, {
"市名": "普洱",
"编码": "101290901"
}, {
"市名": "昭通",
"编码": "101291001"
}, {
"市名": "临沧",
"编码": "101291101"
}, {
"市名": "怒江",
"编码": "101291201"
}, {
"市名": "香格里拉",
"编码": "101291301"
}, {
"市名": "丽江",
"编码": "101291401"
}, {
"市名": "德宏",
"编码": "101291501"
}, {
"市名": "景洪",
"编码": "101291601"
}, {
"市名": "大理",
"编码": "101290201"
}, {
"市名": "曲靖",
"编码": "101290401"
}, {
"市名": "保山",
"编码": "101290501"
}]
}, {
"省": "内蒙古",
"市": [{
"市名": "呼和浩特",
"编码": "101080101"
}, {
"市名": "乌海",
"编码": "101080301"
}, {
"市名": "集宁",
"编码": "101080401"
}, {
"市名": "通辽",
"编码": "101080501"
}, {
"市名": "阿拉善左旗",
"编码": "101081201"
}, {
"市名": "鄂尔多斯",
"编码": "101080701"
}, {
"市名": "临河",
"编码": "101080801"
}, {
"市名": "锡林浩特",
"编码": "101080901"
}, {
"市名": "呼伦贝尔",
"编码": "101081000"
}, {
"市名": "乌兰浩特",
"编码": "101081101"
}, {
"市名": "包头",
"编码": "101080201"
}, {
"市名": "赤峰",
"编码": "101080601"
}]
}, {
"省": "江西",
"市": [{
"市名": "南昌",
"编码": "101240101"
}, {
"市名": "上饶",
"编码": "101240301"
}, {
"市名": "抚州",
"编码": "101240401"
}, {
"市名": "宜春",
"编码": "101240501"
}, {
"市名": "鹰潭",
"编码": "101241101"
}, {
"市名": "赣州",
"编码": "101240701"
}, {
"市名": "景德镇",
"编码": "101240801"
}, {
"市名": "萍乡",
"编码": "101240901"
}, {
"市名": "新余",
"编码": "101241001"
}, {
"市名": "九江",
"编码": "101240201"
}, {
"市名": "吉安",
"编码": "101240601"
}]
}, {
"省": "湖北",
"市": [{
"市名": "武汉",
"编码": "101200101"
}, {
"市名": "黄冈",
"编码": "101200501"
}, {
"市名": "荆州",
"编码": "101200801"
}, {
"市名": "宜昌",
"编码": "101200901"
}, {
"市名": "恩施",
"编码": "101201001"
}, {
"市名": "十堰",
"编码": "101201101"
}, {
"市名": "神农架",
"编码": "101201201"
}, {
"市名": "随州",
"编码": "101201301"
}, {
"市名": "荆门",
"编码": "101201401"
}, {
"市名": "天门",
"编码": "101201501"
}, {
"市名": "仙桃",
"编码": "101201601"
}, {
"市名": "潜江",
"编码": "101201701"
}, {
"市名": "襄樊",
"编码": "101200201"
}, {
"市名": "鄂州",
"编码": "101200301"
}, {
"市名": "孝感",
"编码": "101200401"
}, {
"市名": "黄石",
"编码": "101200601"
}, {
"市名": "咸宁",
"编码": "101200701"
}]
}, {
"省": "宁夏",
"市": [{
"市名": "银川",
"编码": "101170101"
}, {
"市名": "中卫",
"编码": "101170501"
}, {
"市名": "固原",
"编码": "101170401"
}, {
"市名": "石嘴山",
"编码": "101170201"
}, {
"市名": "吴忠",
"编码": "101170301"
}]
}, {
"省": "青海省",
"市": [{
"市名": "西宁",
"编码": "101150101"
}, {
"市名": "黄南",
"编码": "101150301"
}, {
"市名": "海北",
"编码": "101150801"
}, {
"市名": "果洛",
"编码": "101150501"
}, {
"市名": "玉树",
"编码": "101150601"
}, {
"市名": "海西",
"编码": "101150701"
}, {
"市名": "海东",
"编码": "101150201"
}, {
"市名": "海南",
"编码": "101150401"
}]
}, {
"省": "山东",
"市": [{
"市名": "济南",
"编码": "101120101"
}, {
"市名": "潍坊",
"编码": "101120601"
}, {
"市名": "临沂",
"编码": "101120901"
}, {
"市名": "菏泽",
"编码": "101121001"
}, {
"市名": "滨州",
"编码": "101121101"
}, {
"市名": "东营",
"编码": "101121201"
}, {
"市名": "威海",
"编码": "101121301"
}, {
"市名": "枣庄",
"编码": "101121401"
}, {
"市名": "日照",
"编码": "101121501"
}, {
"市名": "莱芜",
"编码": "101121601"
}, {
"市名": "聊城",
"编码": "101121701"
}, {
"市名": "青岛",
"编码": "101120201"
}, {
"市名": "淄博",
"编码": "101120301"
}, {
"市名": "德州",
"编码": "101120401"
}, {
"市名": "烟台",
"编码": "101120501"
}, {
"市名": "济宁",
"编码": "101120701"
}, {
"市名": "泰安",
"编码": "101120801"
}]
}, {
"省": "陕西省",
"市": [{
"市名": "西安",
"编码": "101110101"
}, {
"市名": "延安",
"编码": "101110300"
}, {
"市名": "榆林",
"编码": "101110401"
}, {
"市名": "铜川",
"编码": "101111001"
}, {
"市名": "商洛",
"编码": "101110601"
}, {
"市名": "安康",
"编码": "101110701"
}, {
"市名": "汉中",
"编码": "101110801"
}, {
"市名": "宝鸡",
"编码": "101110901"
}, {
"市名": "咸阳",
"编码": "101110200"
}, {
"市名": "渭南",
"编码": "101110501"
}]
}, {
"省": "山西",
"市": [{
"市名": "太原",
"编码": "101100101"
}, {
"市名": "临汾",
"编码": "101100701"
}, {
"市名": "运城",
"编码": "101100801"
}, {
"市名": "朔州",
"编码": "101100901"
}, {
"市名": "忻州",
"编码": "101101001"
}, {
"市名": "长治",
"编码": "101100501"
}, {
"市名": "大同",
"编码": "101100201"
}, {
"市名": "阳泉",
"编码": "101100301"
}, {
"市名": "晋中",
"编码": "101100401"
}, {
"市名": "晋城",
"编码": "101100601"
}, {
"市名": "吕梁",
"编码": "101101100"
}]
}, {
"省": "新疆",
"市": [{
"市名": "乌鲁木齐",
"编码": "101130101"
}, {
"市名": "石河子",
"编码": "101130301"
}, {
"市名": "昌吉",
"编码": "101130401"
}, {
"市名": "吐鲁番",
"编码": "101130501"
}, {
"市名": "库尔勒",
"编码": "101130601"
}, {
"市名": "阿拉尔",
"编码": "101130701"
}, {
"市名": "阿克苏",
"编码": "101130801"
}, {
"市名": "喀什",
"编码": "101130901"
}, {
"市名": "伊宁",
"编码": "101131001"
}, {
"市名": "塔城",
"编码": "101131101"
}, {
"市名": "哈密",
"编码": "101131201"
}, {
"市名": "和田",
"编码": "101131301"
}, {
"市名": "阿勒泰",
"编码": "101131401"
}, {
"市名": "阿图什",
"编码": "101131501"
}, {
"市名": "博乐",
"编码": "101131601"
}, {
"市名": "克拉玛依",
"编码": "101130201"
}]
}, {
"省": "西藏",
"市": [{
"市名": "拉萨",
"编码": "101140101"
}, {
"市名": "山南",
"编码": "101140301"
}, {
"市名": "阿里",
"编码": "101140701"
}, {
"市名": "昌都",
"编码": "101140501"
}, {
"市名": "那曲",
"编码": "101140601"
}, {
"市名": "日喀则",
"编码": "101140201"
}, {
"市名": "林芝",
"编码": "101140401"
}]
}, {
"省": "台湾",
"市": [{
"市名": "台北县",
"编码": "101340101"
}, {
"市名": "高雄",
"编码": "101340201"
}, {
"市名": "台中",
"编码": "101340401"
}]
}, {
"省": "海南省",
"市": [{
"市名": "海口",
"编码": "101310101"
}, {
"市名": "三亚",
"编码": "101310201"
}, {
"市名": "东方",
"编码": "101310202"
}, {
"市名": "临高",
"编码": "101310203"
}, {
"市名": "澄迈",
"编码": "101310204"
}, {
"市名": "儋州",
"编码": "101310205"
}, {
"市名": "昌江",
"编码": "101310206"
}, {
"市名": "白沙",
"编码": "101310207"
}, {
"市名": "琼中",
"编码": "101310208"
}, {
"市名": "定安",
"编码": "101310209"
}, {
"市名": "屯昌",
"编码": "101310210"
}, {
"市名": "琼海",
"编码": "101310211"
}, {
"市名": "文昌",
"编码": "101310212"
}, {
"市名": "保亭",
"编码": "101310214"
}, {
"市名": "万宁",
"编码": "101310215"
}, {
"市名": "陵水",
"编码": "101310216"
}, {
"市名": "西沙",
"编码": "101310217"
}, {
"市名": "南沙岛",
"编码": "101310220"
}, {
"市名": "乐东",
"编码": "101310221"
}, {
"市名": "五指山",
"编码": "101310222"
}, {
"市名": "琼山",
"编码": "101310102"
}]
}, {
"省": "湖南",
"市": [{
"市名": "长沙",
"编码": "101250101"
}, {
"市名": "株洲",
"编码": "101250301"
}, {
"市名": "衡阳",
"编码": "101250401"
}, {
"市名": "郴州",
"编码": "101250501"
}, {
"市名": "常德",
"编码": "101250601"
}, {
"市名": "益阳",
"编码": "101250700"
}, {
"市名": "娄底",
"编码": "101250801"
}, {
"市名": "邵阳",
"编码": "101250901"
}, {
"市名": "岳阳",
"编码": "101251001"
}, {
"市名": "张家界",
"编码": "101251101"
}, {
"市名": "怀化",
"编码": "101251201"
}, {
"市名": "黔阳",
"编码": "101251301"
}, {
"市名": "永州",
"编码": "101251401"
}, {
"市名": "吉首",
"编码": "101251501"
}, {
"市名": "湘潭",
"编码": "101250201"
}]
}, {
"省": "黑龙江",
"市": [{
"市名": "哈尔滨",
"编码": "101050101"
}, {
"市名": "牡丹江",
"编码": "101050301"
}, {
"市名": "佳木斯",
"编码": "101050401"
}, {
"市名": "绥化",
"编码": "101050501"
}, {
"市名": "黑河",
"编码": "101050601"
}, {
"市名": "双鸭山",
"编码": "101051301"
}, {
"市名": "伊春",
"编码": "101050801"
}, {
"市名": "大庆",
"编码": "101050901"
}, {
"市名": "七台河",
"编码": "101051002"
}, {
"市名": "鸡西",
"编码": "101051101"
}, {
"市名": "鹤岗",
"编码": "101051201"
}, {
"市名": "齐齐哈尔",
"编码": "101050201"
}, {
"市名": "大兴安岭",
"编码": "101050701"
}]
}, {
"省": "吉林",
"市": [{
"市名": "长春",
"编码": "101060101"
}, {
"市名": "延吉",
"编码": "101060301"
}, {
"市名": "四平",
"编码": "101060401"
}, {
"市名": "白山",
"编码": "101060901"
}, {
"市名": "白城",
"编码": "101060601"
}, {
"市名": "辽源",
"编码": "101060701"
}, {
"市名": "松原",
"编码": "101060801"
}, {
"市名": "吉林",
"编码": "101060201"
}, {
"市名": "通化",
"编码": "101060501"
}]
}, {
"省": "辽宁",
"市": [{
"市名": "沈阳",
"编码": "101070101"
}, {
"市名": "鞍山",
"编码": "101070301"
}, {
"市名": "抚顺",
"编码": "101070401"
}, {
"市名": "本溪",
"编码": "101070501"
}, {
"市名": "丹东",
"编码": "101070601"
}, {
"市名": "葫芦岛",
"编码": "101071401"
}, {
"市名": "营口",
"编码": "101070801"
}, {
"市名": "阜新",
"编码": "101070901"
}, {
"市名": "辽阳",
"编码": "101071001"
}, {
"市名": "铁岭",
"编码": "101071101"
}, {
"市名": "朝阳",
"编码": "101071201"
}, {
"市名": "盘锦",
"编码": "101071301"
}, {
"市名": "大连",
"编码": "101070201"
}, {
"市名": "锦州",
"编码": "101070701"
}]
}]
}
以北京为例:测试接口
返回参数
名称 | 描述 |
---|---|
weatherinfo | message root node |
city | 城市中文名 |
cityid | 城市ID |
temp | 温度 |
WD | 风向 |
WS | 风力 |
SD | 湿度 |
WSE | 风力 |
time | 发布时间 |
rain | 是否下雨,1有雨,0无雨 |
idRadar | Is there a radar chart,1有,0无 |
Radar | Radar chart number |
import requests
request = requests.get("http://www.weather.com.cn/data/sk/101010100.html")
request.encoding = 'utf-8'
print("返回结果:%s" % request.json())
print("城市:%s" % request.json()['weatherinfo']['city'])
print("风向:%s" % request.json()['weatherinfo']['WD'])
print("温度:%s" % request.json()['weatherinfo']['temp'] + "℃")
print("风力:%s" % request.json()['weatherinfo']['WS'])
print("湿度:%s" % request.json()['weatherinfo']['SD'])
10.1.3 界面实现
ui文件
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Form</class>
<widget class="QWidget" name="Form">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>484</width>
<height>409</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<widget class="QGroupBox" name="groupBox">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>431</width>
<height>251</height>
</rect>
</property>
<property name="title">
<string>查询城市天气</string>
</property>
<widget class="QComboBox" name="weatherComboBox">
<property name="geometry">
<rect>
<x>80</x>
<y>30</y>
<width>221</width>
<height>21</height>
</rect>
</property>
<item>
<property name="text">
<string>北京</string>
</property>
</item>
<item>
<property name="text">
<string>天津</string>
</property>
</item>
<item>
<property name="text">
<string>上海</string>
</property>
</item>
</widget>
<widget class="QTextEdit" name="resultText">
<property name="geometry">
<rect>
<x>10</x>
<y>60</y>
<width>411</width>
<height>181</height>
</rect>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>20</x>
<y>30</y>
<width>72</width>
<height>21</height>
</rect>
</property>
<property name="text">
<string>城市</string>
</property>
</widget>
</widget>
<widget class="QPushButton" name="queryBtn">
<property name="geometry">
<rect>
<x>90</x>
<y>300</y>
<width>93</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>查询</string>
</property>
</widget>
<widget class="QPushButton" name="clearBtn">
<property name="geometry">
<rect>
<x>230</x>
<y>300</y>
<width>93</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>清空</string>
</property>
</widget>
</widget>
<resources/>
<connections>
<connection>
<sender>clearBtn</sender>
<signal>clicked()</signal>
<receiver>Form</receiver>
<slot>clearResult()</slot>
<hints>
<hint type="sourcelabel">
<x>270</x>
<y>314</y>
</hint>
<hint type="destinationlabel">
<x>363</x>
<y>288</y>
</hint>
</hints>
</connection>
<connection>
<sender>queryBtn</sender>
<signal>clicked()</signal>
<receiver>Form</receiver>
<slot>queryWeather()</slot>
<hints>
<hint type="sourcelabel">
<x>161</x>
<y>313</y>
</hint>
<hint type="destinationlabel">
<x>64</x>
<y>286</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>clearResult()</slot>
<slot>queryWeather()</slot>
</slots>
</ui>
10.1.4 Convert the interface file to .py文件
WeatherWin.py
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'WeatherWin.ui'
#
# Created by: PyQt5 UI code generator 5.9.2
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(484, 409)
self.groupBox = QtWidgets.QGroupBox(Form)
self.groupBox.setGeometry(QtCore.QRect(10, 10, 431, 251))
self.groupBox.setObjectName("groupBox")
self.weatherComboBox = QtWidgets.QComboBox(self.groupBox)
self.weatherComboBox.setGeometry(QtCore.QRect(80, 30, 221, 21))
self.weatherComboBox.setObjectName("weatherComboBox")
self.weatherComboBox.addItem("")
self.weatherComboBox.addItem("")
self.weatherComboBox.addItem("")
self.resultText = QtWidgets.QTextEdit(self.groupBox)
self.resultText.setGeometry(QtCore.QRect(10, 60, 411, 181))
self.resultText.setObjectName("resultText")
self.label = QtWidgets.QLabel(self.groupBox)
self.label.setGeometry(QtCore.QRect(20, 30, 72, 21))
self.label.setObjectName("label")
self.queryBtn = QtWidgets.QPushButton(Form)
self.queryBtn.setGeometry(QtCore.QRect(90, 300, 93, 28))
self.queryBtn.setObjectName("queryBtn")
self.clearBtn = QtWidgets.QPushButton(Form)
self.clearBtn.setGeometry(QtCore.QRect(230, 300, 93, 28))
self.clearBtn.setObjectName("clearBtn")
self.retranslateUi(Form)
self.clearBtn.clicked.connect(Form.clearResult)
self.queryBtn.clicked.connect(Form.queryWeather)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.groupBox.setTitle(_translate("Form", "查询城市天气"))
self.weatherComboBox.setItemText(0, _translate("Form", "北京"))
self.weatherComboBox.setItemText(1, _translate("Form", "天津"))
self.weatherComboBox.setItemText(2, _translate("Form", "上海"))
self.label.setText(_translate("Form", "城市"))
self.queryBtn.setText(_translate("Form", "查询"))
self.clearBtn.setText(_translate("Form", "清空"))
10.1.5 调用主窗口类
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import QApplication , QMainWindow
from WeatherWin import Ui_Form
import requests
class MainWindow(QMainWindow ):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
self.ui = Ui_Form()
self.ui.setupUi(self)
def queryWeather(self):
print('* queryWeather ')
cityName = self.ui.weatherComboBox.currentText()
cityCode = self.transCityName(cityName)
rep = requests.get('http://www.weather.com.cn/data/sk/' + cityCode + '.html')
rep.encoding = 'utf-8'
print( rep.json() )
msg1 = '城市: %s' % rep.json()['weatherinfo']['city'] + '\n'
msg2 = '风向: %s' % rep.json()['weatherinfo']['WD'] + '\n'
msg3 = '温度: %s' % rep.json()['weatherinfo']['temp'] + ' 度' + '\n'
msg4 = '风力: %s' % rep.json()['weatherinfo']['WS'] + '\n'
msg5 = '湿度: %s' % rep.json()['weatherinfo']['SD'] + '\n'
result = msg1 + msg2 + msg3 + msg4 + msg5
self.ui.resultText.setText(result)
def transCityName(self ,cityName):
cityCode = ''
if cityName == '北京' :
cityCode = '101010100'
elif cityName == '天津' :
cityCode = '101030100'
elif cityName == '上海' :
cityCode = '101020100'
return cityCode
def clearResult(self):
print('* clearResult ')
self.ui.resultText.clear()
if __name__=="__main__":
from pyqt5_plugins.examples.exampleqmlitem import QtCore
QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling)
app = QApplication(sys.argv)
win = MainWindow()
win.show()
sys.exit(app.exec_())
边栏推荐
猜你喜欢
随机推荐
JS列表数据通过递归实现树形结构
如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
SAP message TK 248 solved
NameNode (NN) 和SecondaryNameNode (2NN)工作机制
Service discovery of kubernetes
After Effects 教程,如何在 After Effects 中修复曝光不足的镜头?
Chrome开发自定义右键菜单实现快速跳转到指定页面
普林斯顿微积分读本03第二章--编程实现函数图像绘制、三角学回顾
Acwing第 62 场周赛【未完结】
在 Excel 里使用 ODBC 读取 SAP BTP 平台上 CDS view 的数据
FastAPI 封装一个通用的response
kubernetes之服务发现
WebGL给Unity传递参数问题1: Cannot read properties of undefined (reading ‘SendMessage‘)
PAT考试总结(考试心得)
chroot命令
函数的参数
WPF中报错:“未将对象引用设置到对象的实例。”
CWE4.8 -- The 25 most damaging software security issues in 2022
【Shader】Shader官方示例[通俗易懂]
dosbox基础使用[通俗易懂]