当前位置:网站首页>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_())
边栏推荐
- 认知—运动康复医疗机器人应用设计
- 分布式监视 Zabbix 和 Prometheus 到底怎么选?千万别用错了!
- Three-Phase PWM Rectifier Predictive Direct Power Control
- NPM 使用介绍
- Exploring Plain Vision Transformer Backbones for Object Detection 论文阅读笔记
- 跨境电商小知识之跨境电商物流定义以及方式讲解
- alert(1) (haozi.me)靶场练习
- B/S架构模式的一个整体执行流程
- 【Shader】Shader官方示例[通俗易懂]
- [core]-ARMV7-A, ARMV8-A, ARMV9-A Architecture Introduction "Recommended Collection"
猜你喜欢
随机推荐
JVS轻应用的组成与配置
三六零与公安部三所发布报告:关基设施保护成为网络安全博弈关键
JS列表数据通过递归实现树形结构
MySql模糊查询大全
Banyan Tree Loan GPU Hardware Architecture
Use ODBC in Excel to read data from CDS view on SAP BTP platform
AMBA APB学习记录(AMBA 2.0)
WPF中报错:“未将对象引用设置到对象的实例。”
vb.net 画曲线
Caused by: 类找不到: org.apache.flink.table.planner.delegation.ParserFactory或者ExecutorFactory
chroot命令
数据湖(十九):SQL API 读取Kafka数据实时写入Iceberg表
LRU缓存[线性表 -> 链表 -> hash定位 -> 双向链表]
TOGAF10标准读书会第2场活动精彩继续,高光时刻回顾!
ESP8266-Arduino编程实例-MCP9808数字温度传感器驱动
如何正确地把服务器端返回的文件二进制流写入到本地保存成文件
纷享销客罗旭对话元气森林黄晓枫:零售数字化的终点不是创新,而是数据
函数递归1.0
JVS应用中心
通过斐波那契数再谈函数递归2.0