python调用百度API爬取我想要的城市经纬度+做反距离矩阵

告知家属

在写论文做空间计量的时候,需要14省份的经纬度数据,完全可以通过查找地图来填补经纬度数据,但是呢?
为了不拖更,偏偏要用python来实验一下,那就开始吧

百度API密钥

没注册的注册了哈!不会注册请看以前的博客【传送门

创建应用

控制台->我的应用【随便取名】
在这里插入图片描述
【随便取名】
在这里插入图片描述
IP白名单默认就行

【提交】
在这里插入图片描述

调试代码+获取经纬度

import json
from urllib.request import urlopen, quote
import requests,csv
# 这里可以自己建一个列表读入地区数据
address = ['内蒙古','贵州','新疆','宁夏','广东','广西','海南','重庆','四川','甘肃','青海','陕西','西藏','云南']
def getlnglat(address):
    url = 'http://api.map.baidu.com/geocoding/v3/'
    output = 'json'
    ak = 'fFHM8CoBXURMvSUqb38RtEwAlvFm03TT' #'你申请的密钥***'
    add = quote(address) #由于本文城市变量为中文,为防止乱码,先用quote进行编码
    uri = url + '?' + 'address=' + add + '&output=' + output + '&ak=' + ak 
    req = urlopen(uri)
    res = req.read().decode() #将其他编码的字符串解码成unicode
    temp = json.loads(res) #对json数据进行解析
    return temp

f = open('city.csv','w',encoding='gbk',newline='') # 更改一下encoding编码
csv_writer = csv.writer(f)
csv_writer.writerow(["city", "lng", "lat"])
for i in address:
        lng = getlnglat(i)['result']['location']['lng'] #采用构造的函数来获取经度
        lat = getlnglat(i)['result']['location']['lat'] #获取纬度
        str_temp = [i,lng,lat]
        csv_writer.writerow(str_temp) #写入文档
f.close()

代码+经纬度算反距离矩阵

【参考我的其他博文】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wency(王斯-CUEB)

我不是要饭的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值