肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 教你如何用python获得中国气象数据网的API数据并且导入数据库(附源码)

教你如何用python获得中国气象数据网的API数据并且导入数据库(附源码)

时间:2022-03-07 11:40:04

相关推荐

我在网上找了很多如何去使用国家气象数据网的API步骤,我找到的只是贴出来程序得到的是什么数据,具体怎么得到也没有说,我现在将我是怎么得到气象数据的方法写下来,仅供大家参考!

得到气象数据API的方法

第一步:进入国家气象数据网

第二步,找到API服务

第三步:找到自己需要的气象资料

以我为例,我找的是太原市小店区气象站七天的24项气象指标,选好之后,就可以点击完成选购

第四步:找到API的接口

在API订单找到以下图片

点击你订购的对应数据,点击查看,出现以下界面

然后点击样例,会出现新的网页

点击复制网页的网址,例如

http://api.:8090/api?userId=636095877921eaHmm&pwd=WfU0liC&dataFormat=json&interfaceId=getSurfEleByTimeRangeAndStaID&timeRange=1110050000,1110050000]&staIDs=53679&elements=TEM,TEM_Max,TEM_Min&dataCode=SURF_CHN_MUL_HOR

这就是API的接口了。

用python得到API的数据,并且将数据导入数据库中

以下是打印出API的代码

import requests # 需要这三个库import jsonDownload_addres = 'http://api.:8090/api?userId=636095877921eaHmm&pwd=WfU0liC&dataFormat=json&interfaceId=getSurfEleByTimeRangeAndStaID&timeRange=[1105000000,1105230000]&staIDs=53679&elements=Year,Mon,Day,Hour,PRS,PRS_Sea,PRS_Max,PRS_Min,RHU,RHU_Min,VAP,PRE_1h,TEM,TEM_Max,TEM_Min,&dataCode=SURF_CHN_MUL_HOR'f = requests.get(Download_addres)print(f.status_code)def jprint(obj):# create a formatted string of the Python JSON objecttext = json.dumps(obj, sort_keys=True, indent=4)print(text)jprint(f.json())

效果图如下

之后将数据放入数据库,代码如下

import requests # 需要这三个库import jsonimport sqlite3Download_addres = 'http://api.:8090/api?userId=636095877921eaHmm&pwd=WfU0liC&dataFormat=json&interfaceId=getSurfEleByTimeRangeAndStaID&timeRange=[1105000000,1105230000]&staIDs=53679&elements=Year,Mon,Day,Hour,PRS,PRS_Sea,PRS_Max,PRS_Min,RHU,RHU_Min,VAP,PRE_1h,TEM,TEM_Max,TEM_Min,&dataCode=SURF_CHN_MUL_HOR'info = requests.get(Download_addres)result =open('a.json','w')result.write(info.text)result.close()open_json = open('a.json','r',encoding='cp936')zd_json=json.load(open_json) #加载json文件open_json.close()#到这里zd_json是一个python字典print(zd_json["DS"][0]["Year"] + "." +zd_json["DS"][0]["Mon"])sql = sqlite3.connect('weather.db')cursor = sql.cursor()# 执行一条SQL语句,创建user表:cursor.execute('create table taiyuan (data varchar(20),time varchar(20) primary key, PRS varchar(20),\PRS_Sea varchar(20),PRS_Max varchar(20),PRS_Min varchar(20),RHU varchar(20), RHU_Min varchar(20),\VAP varchar(20),PRE_1h varchar(20),TEM varchar(20),TEM_Max varchar(20),TEM_Min varchar(20))')cursor.close()# 提交事务:mit()# 关闭Connection:sql.close()conn = sqlite3.connect('weather.db')cursor = conn.cursor() # 和游标产生联系#for r in range(0, len(zd_json["DS"])): # DS中有多少个字典print(zd_json["DS"][0]["Year"])print("类型是",len(zd_json["DS"]),type(len(zd_json["DS"])))for r in range(len(zd_json["DS"])) :cursor.execute("INSERT INTO taiyuan(data, \time,PRS,PRS_Sea,\PRS_Max,PRS_Min,RHU,RHU_Min,VAP,PRE_1h,\TEM,TEM_Max,TEM_Min)\VALUES ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')" % \(zd_json["DS"][r]["Year"]+"."+zd_json["DS"][r]["Mon"]+"."+zd_json["DS"][r]["Day"],\zd_json["DS"][r]["Hour"],zd_json["DS"][r]["PRS"],zd_json["DS"][r]["PRS_Sea"],\zd_json["DS"][r]["PRS_Max"],zd_json["DS"][r]["PRS_Min"],zd_json["DS"][r]["RHU"], \zd_json["DS"][r]["RHU_Min"], zd_json["DS"][r]["VAP"], zd_json["DS"][r]["PRE_1h"], \zd_json["DS"][r]["TEM"],zd_json["DS"][r]["TEM_Max"],zd_json["DS"][r]["TEM_Min"]))#sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \# LAST_NAME, AGE, SEX, INCOME) \# VALUES ('%s', '%s', %s, '%s', %s)" % \ 有大用!!!!# ('Mac', 'Mohan', 20, 'M', 2000)cursor.close()# 提交事务:mit()# 关闭Connection:conn.close()print("当前的时间是",zd_json["DS"][0]["Year"])

效果如下

以上是我选取的13个指标(可以得到24个,只需要改动以上的代码就可以得到24个指标的数据,我只是嫌麻烦没弄)

看到这里应该是可以弄出来气象数据的,麻烦大家一键三连~~~~祝电脑屏幕前的你学业有成,事业有成!加油!!!

########转载请标明出处!

点击此处可以到达海绵宝宝的大大世界的博客

如果觉得《教你如何用python获得中国气象数据网的API数据并且导入数据库(附源码)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。