Python获取2021疫情春运防疫政策查询(聚合数据接口)

https://www.juhe.cn/docs/api/id/566

用的是聚合数据的这个接口,自己摸索的。。写的不太好,有可以优化的地方请在评论区指出,谢谢

1.首先建表及获取省份城市信息

import requests
import pymssql
import json

url = "http://apis.juhe.cn/springTravel/citys?key=XXXXXXXXXXXXXXXXXXXX"
data = {"city_id":"city"}
res = requests.post(url=url,data=data)
'''接口获取疫情省份城市id信息,key需要自己在聚合数据上获取(该接口普通账户每天能查询100次)'''
db1 = pymssql.connect('XXXXXXXXXXX', 'XXXXXXXXXXXX', 'XXXXXXXX', 'XXXXXXXXXX')

cur2 = db1.cursor()
cur2.execute('drop table if exists FY_PY_CITYS')

sql1 = """CREATE TABLE [dbo].[FY_PY_CITYS] (
[id] int NOT NULL IDENTITY(1,1) ,
[province_id] int NOT NULL ,
[province] nvarchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[city_id] int NOT NULL ,
[city] nvarchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[high_in_desc] nvarchar(MAX) COLLATE Chinese_PRC_CI_AS NULL ,
[low_in_desc] nvarchar(MAX) COLLATE Chinese_PRC_CI_AS NULL ,
[out_desc] nvarchar(MAX) COLLATE Chinese_PRC_CI_AS NULL ,
[CreateDatetime] datetime NOT NULL DEFAULT (getdate()) 
)"""

cur2.execute(sql1)

db1.commit()
i=-1
data = json.loads(res.content)
for province in  data['result']:
    i=i+1
    for city in  data['result'][i]['citys']:
        _province_id=str(i+1)
        _province=province['province']
        _city_id=city['city_id']
        _city=city['city']
        query = """insert into FY_PY_CITYS (province_id, province, city_id,city)  values 
        ('"""+_province_id+"""','"""+_province+"""','"""+_city_id+"""','"""+_city+"""')
         """
        cur2.execute(query)
        db1.commit()
        print(str(i+1)+'-'+province['province']+'_'+city['city']+'-'+city['city_id'])

2.接口里的信息我这边只需要进出省份城市的防疫政策,仅作参考(360个城市,每天限100次查询,所以如果要每天更新的话,需要两个账号的key,同样的写法改一下i的值就可以了。。。贫穷)

import requests
import pymssql
import json
import time

db1 = pymssql.connect('XXXXXXXXXXX', 'XXXXXXXXXXXX', 'XXXXXXXX', 'XXXXXXXXXX')
cur2 = db1.cursor()

i=-1
for i in range(90) :
    i=i+1
    from_='select city_id from FY_PY_CITYS where id='+str(i)
    to_='select city_id from FY_PY_CITYS where id='+str(i+200)
    from_=cur2.execute(from_)
    from_=cur2.fetchone()
    print("from_ : %s " %from_)
    to_=cur2.execute(to_)
    to_=cur2.fetchone()
    print("to_ : %s " %to_)
    url = "http://apis.juhe.cn/springTravel/query?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX&from={}&to={}".format(from_[0], to_[0])
    
    res = requests.get(url=url)
    '''接口获取疫情省份城市防疫政策'''
    res.encoding = 'utf-8'
    data = json.loads(res.content)
    from_high_in_desc=data['result']['from_info']['high_in_desc']
    from_low_in_desc=data['result']['from_info']['low_in_desc']
    from_out_desc=data['result']['from_info']['out_desc']
    
    to_high_in_desc=data['result']['to_info']['high_in_desc']
    to_low_in_desc=data['result']['to_info']['low_in_desc']
    to_out_desc=data['result']['to_info']['out_desc']
    
    from_query = """update FY_PY_CITYS 
    set high_in_desc='{0}', low_in_desc='{1}',out_desc='{2}'
    where city_id={3}""".format(from_high_in_desc,from_low_in_desc,from_out_desc,from_[0])    
    cur2.execute(from_query)
    
    time.sleep(1)
    
    to_query = """update FY_PY_CITYS 
    set high_in_desc='{0}', low_in_desc='{1}',out_desc='{2}'
    where city_id={3}""".format(to_high_in_desc,to_low_in_desc,to_out_desc,to_[0])    
    cur2.execute(to_query)
    
    db1.commit()
    print(str(i)+':\n from_high_in:'+from_high_in_desc+'\nfrom_low_in:'+from_low_in_desc+'\nfrom_out:'+from_out_desc
          +':\n to_high_in:'+to_high_in_desc+'\nto_low_in:'+to_low_in_desc+'\nto_out:'+to_out_desc)

3.大致成果

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值