知识要点
- requests模块get方法的使用;
- json模块解码的使用;
- with open() as f 文件操作的用法;
- for 循环的使用;
import requests
import json
def get_urls(add):
url = "https://api.map.baidu.com/geocoding/v3/?address=" + str(add)
url = url + "&output=json&ak=11Z8uiP8kIz6AG0Vjiwzbc5f9I**"
r = requests.get(url)
res = json.loads(r.text)
# 数据格式化;
content = str(add) + "," + str(res["result"]["location"]["lng"]) + "," + str(res["result"]["location"]["lat"]) + "\n"
# 写入文件
with open('data.csv', 'a') as f:
f.write(content)
return ""
# 读取地址信息;
with open(r'add.txt', 'r', encoding='utf-8') as f:
# 读取地址信息列表
address = f.read().split()
# 地址转换
i = 0
for item in address:
# 调用百度转换API封装函数;
get_urls(item)
print("第{}个地址已转换".format(i + 1))
i += 1
要点说明
- with open(r’add.txt’, ‘r’, encoding=‘utf-8’),加入encoding=‘utf-8’,防止读取.txt文件编码错误;
- open(‘data.csv’, ‘a’) as f,直接生成.csv文件,方便数据处理和传输;
- json.loads,解码成列表后,方便分离和调用;
lockdatav Done!