python开发构建基于国家气象台免费免费数据查询接口的气象数据采集与可视化分析应用

天气气象数据是用于描述和记录大气环境状态和变化的数据。它包含了各种气象要素和参数的观测值,如温度、湿度、风速、降水量、气压等。

天气气象数据通常由气象站点、卫星观测和气象雷达等设备获取。这些设备会定期测量和记录各种气象要素,并将数据传输到气象局或其他相关机构进行处理和分析。

通过收集和分析天气气象数据,人们可以掌握气候变化趋势、预测天气情况、研究气象现象和气候模式等。天气气象数据对于气象学研究、气象预报、农业、交通运输、能源管理、自然灾害预警等领域具有重要意义。

常见的天气气象数据包括:

  • 温度:描述空气或物体的热度。
  • 湿度:衡量空气中水蒸气的含量。
  • 风速和风向:表示风的强度和方向。
  • 降水量:指每个时间段内降落在地表上的水的总量。
  • 气压:衡量大气压强的大小。
  • 能见度:描述空气中水平视线可见程度。
  • 云量和云型:用于描述云的遮蔽程度和形态。
  • 辐射:描述太阳辐射、地表反射辐射等。

这些数据通常以时序数据的形式进行记录,并可以通过各种数据源和气象服务提供商获取。天气气象数据对于预测天气、气候研究和相关行业的决策制定非常重要。

天气预报,在如今信息化的时代好像没那么多人关注了。但是往往在一些系统中,还会穿插着天气的相关信息。那么如何去实现天气预报的功能呢?在市面上会有一些收费的天气接口,接口文档繁杂。也有一些免费的接口,但是需要自己收集城市编码。今天给大家带来的是国家气象局提供的接口。

接口地址如下:

http://t.weather.sojson.com/api/weather

返回数据格式为json

请求方式为get

请求实例如下所示:

ttp://t.weather.sojson.com/api/weather/city/101030100

详细说明如下所示:

 结果实例如下所示:

{
	"message": "success感谢又拍云(upyun.com)提供CDN赞助",
	"status": 200,
	"date": "20230629",
	"time": "2023-06-29 15:26:19",
	"cityInfo": {
		"city": "天津市",
		"citykey": "101030100",
		"parent": "天津",
		"updateTime": "11:31"
	},
	"data": {
		"shidu": "55%",
		"pm25": 15.0,
		"pm10": 22.0,
		"quality": "优",
		"wendu": "32",
		"ganmao": "各类人群可自由活动",
		"forecast": [
			{
				"date": "29",
				"high": "高温 34℃",
				"low": "低温 23℃",
				"ymd": "2023-06-29",
				"week": "星期四",
				"sunrise": "04:48",
				"sunset": "19:41",
				"aqi": 94,
				"fx": "东南风",
				"fl": "2级",
				"type": "晴",
				"notice": "愿你拥有比阳光明媚的心情"
			},
			{
				"date": "30",
				"high": "高温 37℃",
				"low": "低温 25℃",
				"ymd": "2023-06-30",
				"week": "星期五",
				"sunrise": "04:48",
				"sunset": "19:41",
				"aqi": 99,
				"fx": "西南风",
				"fl": "3级",
				"type": "晴",
				"notice": "愿你拥有比阳光明媚的心情"
			},
			{
				"date": "01",
				"high": "高温 37℃",
				"low": "低温 26℃",
				"ymd": "2023-07-01",
				"week": "星期六",
				"sunrise": "04:49",
				"sunset": "19:41",
				"aqi": 108,
				"fx": "西南风",
				"fl": "4级",
				"type": "多云",
				"notice": "阴晴之间,谨防紫外线侵扰"
			},
			{
				"date": "02",
				"high": "高温 38℃",
				"low": "低温 25℃",
				"ymd": "2023-07-02",
				"week": "星期日",
				"sunrise": "04:49",
				"sunset": "19:41",
				"aqi": 100,
				"fx": "东南风",
				"fl": "3级",
				"type": "多云",
				"notice": "阴晴之间,谨防紫外线侵扰"
			},
			{
				"date": "03",
				"high": "高温 32℃",
				"low": "低温 23℃",
				"ymd": "2023-07-03",
				"week": "星期一",
				"sunrise": "04:50",
				"sunset": "19:41",
				"aqi": 94,
				"fx": "东南风",
				"fl": "3级",
				"type": "阴",
				"notice": "不要被阴云遮挡住好心情"
			},
			{
				"date": "04",
				"high": "高温 34℃",
				"low": "低温 23℃",
				"ymd": "2023-07-04",
				"week": "星期二",
				"sunrise": "04:50",
				"sunset": "19:40",
				"aqi": 71,
				"fx": "东风",
				"fl": "2级",
				"type": "多云",
				"notice": "阴晴之间,谨防紫外线侵扰"
			},
			{
				"date": "05",
				"high": "高温 40℃",
				"low": "低温 27℃",
				"ymd": "2023-07-05",
				"week": "星期三",
				"sunrise": "04:51",
				"sunset": "19:40",
				"aqi": 82,
				"fx": "东南风",
				"fl": "3级",
				"type": "晴",
				"notice": "愿你拥有比阳光明媚的心情"
			},
			{
				"date": "06",
				"high": "高温 39℃",
				"low": "低温 26℃",
				"ymd": "2023-07-06",
				"week": "星期四",
				"sunrise": "04:51",
				"sunset": "19:40",
				"aqi": 89,
				"fx": "西南风",
				"fl": "3级",
				"type": "多云",
				"notice": "阴晴之间,谨防紫外线侵扰"
			},
			{
				"date": "07",
				"high": "高温 39℃",
				"low": "低温 24℃",
				"ymd": "2023-07-07",
				"week": "星期五",
				"sunrise": "04:52",
				"sunset": "19:40",
				"aqi": 89,
				"fx": "南风",
				"fl": "3级",
				"type": "小雨",
				"notice": "雨虽小,注意保暖别感冒"
			},
			{
				"date": "08",
				"high": "高温 37℃",
				"low": "低温 22℃",
				"ymd": "2023-07-08",
				"week": "星期六",
				"sunrise": "04:53",
				"sunset": "19:39",
				"aqi": 79,
				"fx": "东风",
				"fl": "3级",
				"type": "阴",
				"notice": "不要被阴云遮挡住好心情"
			},
			{
				"date": "09",
				"high": "高温 29℃",
				"low": "低温 22℃",
				"ymd": "2023-07-09",
				"week": "星期日",
				"sunrise": "04:53",
				"sunset": "19:39",
				"aqi": 58,
				"fx": "东风",
				"fl": "3级",
				"type": "阴",
				"notice": "不要被阴云遮挡住好心情"
			},
			{
				"date": "10",
				"high": "高温 31℃",
				"low": "低温 22℃",
				"ymd": "2023-07-10",
				"week": "星期一",
				"sunrise": "04:54",
				"sunset": "19:39",
				"aqi": 60,
				"fx": "东南风",
				"fl": "2级",
				"type": "多云",
				"notice": "阴晴之间,谨防紫外线侵扰"
			},
			{
				"date": "11",
				"high": "高温 31℃",
				"low": "低温 20℃",
				"ymd": "2023-07-11",
				"week": "星期二",
				"sunrise": "04:55",
				"sunset": "19:38",
				"aqi": 81,
				"fx": "东风",
				"fl": "3级",
				"type": "阴",
				"notice": "不要被阴云遮挡住好心情"
			},
			{
				"date": "12",
				"high": "高温 27℃",
				"low": "低温 20℃",
				"ymd": "2023-07-12",
				"week": "星期三",
				"sunrise": "04:55",
				"sunset": "19:38",
				"aqi": 64,
				"fx": "东北风",
				"fl": "2级",
				"type": "小雨",
				"notice": "雨虽小,注意保暖别感冒"
			},
			{
				"date": "13",
				"high": "高温 30℃",
				"low": "低温 22℃",
				"ymd": "2023-07-13",
				"week": "星期四",
				"sunrise": "04:56",
				"sunset": "19:37",
				"aqi": 65,
				"fx": "东风",
				"fl": "2级",
				"type": "小雨",
				"notice": "雨虽小,注意保暖别感冒"
			}
		],
		"yesterday": {
			"date": "28",
			"high": "高温 35℃",
			"low": "低温 23℃",
			"ymd": "2023-06-28",
			"week": "星期三",
			"sunrise": "04:47",
			"sunset": "19:41",
			"aqi": 64,
			"fx": "东南风",
			"fl": "2级",
			"type": "小雨",
			"notice": "雨虽小,注意保暖别感冒"
		}
	}
}

截图如下所示:

 程序所需要的城市编码对应关系如下所示:

编号	省会城市	区域	区域编号
1	北京	北京	101010100
2	北京	朝阳	101010300
3	北京	顺义	101010400
4	北京	怀柔	101010500
5	北京	通州	101010600
6	北京	昌平	101010700
7	北京	延庆	101010800
8	北京	丰台	101010900
9	北京	石景山	101011000
10	北京	大兴	101011100
11	北京	房山	101011200
12	北京	密云	101011300
13	北京	门头沟	101011400
14	北京	平谷	101011500
15	北京	八达岭	101011600
16	北京	佛爷顶	101011700
17	北京	汤河口	101011800
18	北京	密云上甸子	101011900
19	北京	斋堂	101012000
20	北京	霞云岭	101012100
21	北京	北京城区	101012200
22	北京	海淀	101010200
23	天津市	天津	101030100
24	天津市	宝坻	101030300
24	天津市	宝坻	101030300
25	天津市	东丽	101030400
26	天津市	西青	101030500
27	天津市	北辰	101030600
28	天津市	蓟县	101031400
29	天津市	汉沽	101030800
30	天津市	静海	101030900
31	天津市	津南	101031000
32	天津市	塘沽	101031100
33	天津市	大港	101031200
34	天津市	武清	101030200
35	天津市	宁河	101030700
36	上海	上海	101020100
37	上海	宝山	101020300
38	上海	嘉定	101020500
39	上海	南汇	101020600
40	上海	浦东	101021300
41	上海	青浦	101020800
42	上海	松江	101020900
43	上海	奉贤	101021000
44	上海	崇明	101021100
45	上海	徐家汇	101021200
46	上海	闵行	101020200
47	上海	金山	101020700
48	河北	石家庄	101090101
49	河北	张家口	101090301
50	河北	承德	101090402
51	河北	唐山	101090501
52	河北	秦皇岛	101091101
53	河北	沧州	101090701
54	河北	衡水	101090801
55	河北	邢台	101090901
56	河北	邯郸	101091001
57	河北	保定	101090201
58	河北	廊坊	101090601
59	河南	郑州	101180101
60	河南	新乡	101180301
61	河南	许昌	101180401
62	河南	平顶山	101180501
63	河南	信阳	101180601
64	河南	南阳	101180701
65	河南	开封	101180801
66	河南	洛阳	101180901
67	河南	商丘	101181001
68	河南	焦作	101181101
69	河南	鹤壁	101181201
70	河南	濮阳	101181301
71	河南	周口	101181401
72	河南	漯河	101181501
73	河南	驻马店	101181601
74	河南	三门峡	101181701
75	河南	济源	101181801
76	河南	安阳	101180201
77	安徽	合肥	101220101
78	安徽	芜湖	101220301
79	安徽	淮南	101220401
80	安徽	马鞍山	101220501
81	安徽	安庆	101220601
82	安徽	宿州	101220701
83	安徽	阜阳	101220801
84	安徽	亳州	101220901
85	安徽	黄山	101221001
86	安徽	滁州	101221101
87	安徽	淮北	101221201
88	安徽	铜陵	101221301
89	安徽	宣城	101221401
90	安徽	六安	101221501
91	安徽	巢湖	101221601
92	安徽	池州	101221701
93	安徽	蚌埠	101220201
94	浙江	杭州	101210101
95	浙江	舟山	101211101
96	浙江	湖州	101210201
97	浙江	嘉兴	101210301
98	浙江	金华	101210901
99	浙江	绍兴	101210501
100	浙江	台州	101210601
101	浙江	温州	101210701
102	浙江	丽水	101210801
103	浙江	衢州	101211001
104	浙江	宁波	101210401
105	重庆	重庆	101040100
106	重庆	合川	101040300
107	重庆	南川	101040400
108	重庆	江津	101040500
109	重庆	万盛	101040600
110	重庆	渝北	101040700
111	重庆	北碚	101040800
112	重庆	巴南	101040900
113	重庆	长寿	101041000
114	重庆	黔江	101041100
115	重庆	万州天城	101041200
116	重庆	万州龙宝	101041300
117	重庆	涪陵	101041400
118	重庆	开县	101041500
119	重庆	城口	101041600
120	重庆	云阳	101041700
121	重庆	巫溪	101041800
122	重庆	奉节	101041900
123	重庆	巫山	101042000
124	重庆	潼南	101042100
125	重庆	垫江	101042200
126	重庆	梁平	101042300
127	重庆	忠县	101042400
128	重庆	石柱	101042500
129	重庆	大足	101042600
130	重庆	荣昌	101042700
131	重庆	铜梁	101042800
132	重庆	璧山	101042900
133	重庆	丰都	101043000
134	重庆	武隆	101043100
135	重庆	彭水	101043200
136	重庆	綦江	101043300
137	重庆	酉阳	101043400
138	重庆	秀山	101043600
139	重庆	沙坪坝	101043700
140	重庆	永川	101040200
141	福建	福州	101230101
142	福建	泉州	101230501
143	福建	漳州	101230601
144	福建	龙岩	101230701
145	福建	晋江	101230509
146	福建	南平	101230901
147	福建	厦门	101230201
148	福建	宁德	101230301
149	福建	莆田	101230401
150	福建	三明	101230801
151	甘肃	兰州	101160101
152	甘肃	平凉	101160301
153	甘肃	庆阳	101160401
154	甘肃	武威	101160501
155	甘肃	金昌	101160601
156	甘肃	嘉峪关	101161401
157	甘肃	酒泉	101160801
158	甘肃	天水	101160901
159	甘肃	武都	101161001
160	甘肃	临夏	101161101
161	甘肃	合作	101161201
162	甘肃	白银	101161301
163	甘肃	定西	101160201
164	甘肃	张掖	101160701
165	广东	广州	101280101
166	广东	惠州	101280301
167	广东	梅州	101280401
168	广东	汕头	101280501
169	广东	深圳	101280601
170	广东	珠海	101280701
171	广东	佛山	101280800
172	广东	肇庆	101280901
173	广东	湛江	101281001
174	广东	江门	101281101
175	广东	河源	101281201
176	广东	清远	101281301
177	广东	云浮	101281401
178	广东	潮州	101281501
179	广东	东莞	101281601
180	广东	中山	101281701
181	广东	阳江	101281801
182	广东	揭阳	101281901
183	广东	茂名	101282001
184	广东	汕尾	101282101
185	广东	韶关	101280201
186	广西	南宁	101300101
187	广西	柳州	101300301
188	广西	来宾	101300401
189	广西	桂林	101300501
190	广西	梧州	101300601
191	广西	防城港	101301401
192	广西	贵港	101300801
193	广西	玉林	101300901
194	广西	百色	101301001
195	广西	钦州	101301101
196	广西	河池	101301201
197	广西	北海	101301301
198	广西	崇左	101300201
199	广西	贺州	101300701
200	贵州	贵阳	101260101
201	贵州	安顺	101260301
202	贵州	都匀	101260401
203	贵州	兴义	101260906
204	贵州	铜仁	101260601
205	贵州	毕节	101260701
206	贵州	六盘水	101260801
207	贵州	遵义	101260201
208	贵州	凯里	101260501
209	云南	昆明	101290101
210	云南	红河	101290301
211	云南	文山	101290601
212	云南	玉溪	101290701
213	云南	楚雄	101290801
214	云南	普洱	101290901
215	云南	昭通	101291001
216	云南	临沧	101291101
217	云南	怒江	101291201
218	云南	香格里拉	101291301
219	云南	丽江	101291401
220	云南	德宏	101291501
221	云南	景洪	101291601
222	云南	大理	101290201
223	云南	曲靖	101290401
224	云南	保山	101290501
225	内蒙古	呼和浩特	101080101
226	内蒙古	乌海	101080301
227	内蒙古	集宁	101080401
228	内蒙古	通辽	101080501
229	内蒙古	阿拉善左旗	101081201
230	内蒙古	鄂尔多斯	101080701
231	内蒙古	临河	101080801
232	内蒙古	锡林浩特	101080901
233	内蒙古	呼伦贝尔	101081000
234	内蒙古	乌兰浩特	101081101
235	内蒙古	包头	101080201
236	内蒙古	赤峰	101080601
237	江西	南昌	101240101
238	江西	上饶	101240301
239	江西	抚州	101240401
240	江西	宜春	101240501
241	江西	鹰潭	101241101
242	江西	赣州	101240701
243	江西	景德镇	101240801
244	江西	萍乡	101240901
245	江西	新余	101241001
246	江西	九江	101240201
247	江西	吉安	101240601
248	湖北	武汉	101200101
249	湖北	黄冈	101200501
250	湖北	荆州	101200801
251	湖北	宜昌	101200901
252	湖北	恩施	101201001
253	湖北	十堰	101201101
254	湖北	神农架	101201201
255	湖北	随州	101201301
256	湖北	荆门	101201401
257	湖北	天门	101201501
258	湖北	仙桃	101201601
259	湖北	潜江	101201701
260	湖北	襄樊	101200201
261	湖北	鄂州	101200301
262	湖北	孝感	101200401
263	湖北	黄石	101200601
264	湖北	咸宁	101200701
265	四川	成都	101270101
266	四川	自贡	101270301
267	四川	绵阳	101270401
268	四川	南充	101270501
269	四川	达州	101270601
270	四川	遂宁	101270701
271	四川	广安	101270801
272	四川	巴中	101270901
273	四川	泸州	101271001
274	四川	宜宾	101271101
275	四川	内江	101271201
276	四川	资阳	101271301
277	四川	乐山	101271401
278	四川	眉山	101271501
279	四川	凉山	101271601
280	四川	雅安	101271701
281	四川	甘孜	101271801
282	四川	阿坝	101271901
283	四川	德阳	101272001
284	四川	广元	101272101
285	四川	攀枝花	101270201
286	宁夏	银川	101170101
287	宁夏	中卫	101170501
288	宁夏	固原	101170401
289	宁夏	石嘴山	101170201
290	宁夏	吴忠	101170301
291	青海省	西宁	101150101
292	青海省	黄南	101150301
293	青海省	海北	101150801
294	青海省	果洛	101150501
295	青海省	玉树	101150601
296	青海省	海西	101150701
297	青海省	海东	101150201
298	青海省	海南	101150401
299	山东	济南	101120101
300	山东	潍坊	101120601
301	山东	临沂	101120901
302	山东	菏泽	101121001
303	山东	滨州	101121101
304	山东	东营	101121201
305	山东	威海	101121301
306	山东	枣庄	101121401
307	山东	日照	101121501
308	山东	莱芜	101121601
309	山东	聊城	101121701
310	山东	青岛	101120201
311	山东	淄博	101120301
312	山东	德州	101120401
313	山东	烟台	101120501
314	山东	济宁	101120701
315	山东	泰安	101120801
316	陕西省	西安	101110101
317	陕西省	延安	101110300
318	陕西省	榆林	101110401
319	陕西省	铜川	101111001
320	陕西省	商洛	101110601
321	陕西省	安康	101110701
322	陕西省	汉中	101110801
323	陕西省	宝鸡	101110901
324	陕西省	咸阳	101110200
325	陕西省	渭南	101110501
326	山西	太原	101100101
327	山西	临汾	101100701
328	山西	运城	101100801
329	山西	朔州	101100901
330	山西	忻州	101101001
331	山西	长治	101100501
332	山西	大同	101100201
333	山西	阳泉	101100301
334	山西	晋中	101100401
335	山西	晋城	101100601
336	山西	吕梁	101101100
337	新疆	乌鲁木齐	101130101
338	新疆	石河子	101130301
339	新疆	昌吉	101130401
340	新疆	吐鲁番	101130501
341	新疆	库尔勒	101130601
342	新疆	阿拉尔	101130701
343	新疆	阿克苏	101130801
344	新疆	喀什	101130901
345	新疆	伊宁	101131001
346	新疆	塔城	101131101
347	新疆	哈密	101131201
348	新疆	和田	101131301
349	新疆	阿勒泰	101131401
350	新疆	阿图什	101131501
351	新疆	博乐	101131601
352	新疆	克拉玛依	101130201
353	西藏	拉萨	101140101
354	西藏	山南	101140301
355	西藏	阿里	101140701
356	西藏	昌都	101140501
357	西藏	那曲	101140601
358	西藏	日喀则	101140201
359	西藏	林芝	101140401
360	台湾	台北县	101340101
361	台湾	高雄	101340201
362	台湾	台中	101340401
363	海南省	海口	101310101
364	海南省	三亚	101310201
365	海南省	东方	101310202
366	海南省	临高	101310203
367	海南省	澄迈	101310204
368	海南省	儋州	101310205
369	海南省	昌江	101310206
370	海南省	白沙	101310207
371	海南省	琼中	101310208
372	海南省	定安	101310209
373	海南省	屯昌	101310210
374	海南省	琼海	101310211
375	海南省	文昌	101310212
376	海南省	保亭	101310214
377	海南省	万宁	101310215
378	海南省	陵水	101310216
379	海南省	西沙	101310217
380	海南省	南沙岛	101310220
381	海南省	乐东	101310221
382	海南省	五指山	101310222
383	海南省	琼山	101310102
384	湖南	长沙	101250101
385	湖南	株洲	101250301
386	湖南	衡阳	101250401
387	湖南	郴州	101250501
388	湖南	常德	101250601
389	湖南	益阳	101250700
390	湖南	娄底	101250801
391	湖南	邵阳	101250901
392	湖南	岳阳	101251001
393	湖南	张家界	101251101
394	湖南	怀化	101251201
395	湖南	黔阳	101251301
396	湖南	永州	101251401
397	湖南	吉首	101251501
398	湖南	湘潭	101250201
399	江苏	南京	101190101
400	江苏	镇江	101190301
401	江苏	苏州	101190401
402	江苏	南通	101190501
403	江苏	扬州	101190601
404	江苏	宿迁	101191301
405	江苏	徐州	101190801
406	江苏	淮安	101190901
407	江苏	连云港	101191001
408	江苏	常州	101191101
409	江苏	泰州	101191201
410	江苏	无锡	101190201
411	江苏	盐城	101190701
412	黑龙江	哈尔滨	101050101
413	黑龙江	牡丹江	101050301
414	黑龙江	佳木斯	101050401
415	黑龙江	绥化	101050501
416	黑龙江	黑河	101050601
417	黑龙江	双鸭山	101051301
418	黑龙江	伊春	101050801
419	黑龙江	大庆	101050901
420	黑龙江	七台河	101051002
421	黑龙江	鸡西	101051101
422	黑龙江	鹤岗	101051201
423	黑龙江	齐齐哈尔	101050201
424	黑龙江	大兴安岭	101050701
425	吉林	长春	101060101
426	吉林	延吉	101060301
427	吉林	四平	101060401
428	吉林	白山	101060901
429	吉林	白城	101060601
430	吉林	辽源	101060701
431	吉林	松原	101060801
432	吉林	吉林	101060201
433	吉林	通化	101060501
434	辽宁	沈阳	101070101
435	辽宁	鞍山	101070301
436	辽宁	抚顺	101070401
437	辽宁	本溪	101070501
438	辽宁	丹东	101070601
439	辽宁	葫芦岛	101071401
440	辽宁	营口	101070801
441	辽宁	阜新	101070901
442	辽宁	辽阳	101071001
443	辽宁	铁岭	101071101
444	辽宁	朝阳	101071201
445	辽宁	盘锦	101071301
446	辽宁	大连	101070201
447	辽宁	锦州	101070701

这样的数据不便于解析使用,所以这里我对其进行加载解析处理,代码实现如下所示:

with open(data,encoding="utf-8") as f:
    data_list=[one.strip().split("\t") for one in f.readlines() if one.strip()]
print("data_list_length: ", len(data_list))
for one in data_list[:3]:
    print(one)
code_dict={}
for one_list in data_list[1:]:
    one_id, one_province, one_city, one_code = one_list
    code_dict[one_city] = [one_code, one_province]
with open(save_path, "w") as f:
    f.write(json.dumps(code_dict))

得到解析规整过后的结果数据如下所示:

 接下来我们按照官方提供的实例开始组装请求所需的url如下所示:

print("city code is: ", code)
url="http://t.weather.sojson.com/api/weather/city/{}".format(code)
print("url is: ", url)

借助于requests模块调用get请求即可完成数据请求操作,如下所示:

response = requests.get(url)

接下来对数据进行解析处理,核心实现如下所示:

 我们以北京市为例看下采集获取到的实例数据如下所示:

{
	"时间": "2023-06-29 - 星期四",
	"温度": "33",
	"最高温度": "高温 35℃",
	"最低温度": "低温 21℃",
	"湿度": "31%",
	"天气类型": "晴",
	"空气质量": "优",
	"注意": "愿你拥有比阳光明媚的心情",
	"PM2.5": 10.0,
	"PM10": 35.0,
	"AQI": 110
}

当然了,对于几百个城市的数据采集肯定是不能一个一个传入参数进行采集数据集的,这里就可以编写循环方法来实现自动化批量实现所有城市数据的采集处理, 这里核心代码实现如下所示:

 到这里就已经实现了所有城市当日数据的采集和存储处理了,接下来如果想要自动定时每日之星数据采集也都是可以的,实现逻辑与上面类似的,我已经预留构建了文件存储格式是以日期为目录入口的,这里就不再赘述了,今日的数据存储目录截图如下所示:

 以黑龙江为例,看下目录如下所示:

 到这里完成了所需要数据的采集与存储

接下来想要对获取到的数据进行分析可视化,核心代码实现如下所示:

 这里一共包含:温度、湿度、最高温度、最低温度、PM2.5、PM10和AQI七种不同的因子数据,我这里绘制了两张图,分别是温度图和综合数据图,这里看下实例结果:

 到这里是完成了单个城市的数据分析可视化,如果想要批量自动化的实现全国城市的数据可视化也是可以的,核心代码实现如下所示:

today=dataDir.split("/")[-1].strip()
resDir=saveDir+today+"/"
if not os.path.exists(resDir):
    os.makedirs(resDir)
for one_province in os.listdir(dataDir):
    print("one_province: ", one_province)
    oneDataDir=dataDir+one_province+"/"
    provinceShow(dataDir=oneDataDir, saveDir=resDir)

接下来我们看下结果目录截图如下所示:

 【河南】

 【云南】

 还是很有意思的,感兴趣的话都可以自己动手实践一下,也可以在此基础上继续深入分析。

猜你喜欢

转载自blog.csdn.net/Together_CZ/article/details/131457220