python解析接口_python调用百度接口解析/逆解析地址

importrequestsimportjsonimportpymysql

ak='你的ak'

defmysql_():

conn= pymysql.connect(host='127.0.0.1', user='数据库账号', passwd='数据库密码', db='数据库',

port=3306, charset='utf8',

cursorclass=pymysql.cursors.DictCursor)

cur=conn.cursor()returnconn,curdefselectdiyu():

conn, cur=mysql_()

sql= "select id,complete from chengguo"cur.execute(sql)

diyus=cur.fetchall()returndiyusdefupdatediyu(diyu, adcode, id):

data=[]

data.append((diyu, adcode, id))

conn, cur=mysql_()

sql= "update chengguo set diyu = %s,adcode = %s where id = %s"cur.executemany(sql,data)

conn.commit()defupdatecode(adcode, id):

data=[]

data.append((adcode, id))

conn, cur=mysql_()

sql= "update chengguo set adcode = %s where id = %s"cur.executemany(sql,data)

conn.commit()defgetPosition(url):

res=requests.get(url)

json_data=json.loads(res.text)if json_data['status'] ==0:

lat= json_data['result']['location']['lat'] #纬度

lng = json_data['result']['location']['lng'] #经度

else:print("Error output!")return json_data['status']returnlat, lngdefgetlocation(lat, lng, id):

url= 'http://api.map.baidu.com/reverse_geocoding/v3/?ak='+ak+'&output=json&coordtype=wgs84ll&location='+str(lat)+','+str(lng)

result=requests.get(url)

url_text=result.content.decode()

text=json.loads(url_text)

address= text.get('result').get('addressComponent')

province= address.get('province')

city= address.get('city')

district= address.get('district')

adcode= address.get('adcode')if province ==city:

diyu= province +districtelse:

diyu= province + city +districttry:#updatediyu(diyu, adcode, id)

updatecode(adcode, id)print('更新成功',id,diyu,adcode)except:print('更新失败')if __name__ == "__main__":

diyus=selectdiyu()for diyu indiyus:

add= diyu['complete'].replace('等','').split(' ')[0]

add= add.split('、')[0].partition('项目负责人')[0]

add_url= 'http://api.map.baidu.com/geocoding/v3/?address={Address}&output=json&ak={Ak}'.format(Address=add,Ak=ak)try:

lat, lng=getPosition(add_url)

getlocation(lat, lng, diyu['id'])except:

add_url= 'http://api.map.baidu.com/geocoding/v3/?address={Address}&output=json&ak={Ak}'.format(Address='天津市'+add,Ak=ak)

lat, lng=getPosition(add_url)

getlocation(lat, lng, diyu['id'])

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值