python實現批量城市經緯度查詢


 1 # Author:979
 2 # blog addr:http://www.cnblogs.com/home979/
 3 import json
 4 from urllib.request import urlopen, quote
 5 import requests,csv
 6 
 7 def getlnglat(address):
 8     url = 'http://api.map.baidu.com/geocoder/v2/'
 9     output = 'json'
10     ak = '百度地圖開放平台申請或者加QQ944485360請求作者幫助' #'你申請的密鑰***'
11     add = quote(address) #由於本文城市變量為中文,為防止亂碼,先用quote進行編碼
12     uri = url + '?' + 'address=' + add + '&output=' + output + '&ak=' + ak
13     req = urlopen(uri)
14     res = req.read().decode() #將其他編碼的字符串解碼成unicode
15     temp = json.loads(res) #對json數據進行解析
16     return temp
17 
18 file = open('D:\\爬蟲數據分析\調用百度地圖api\point.json','w') #建立json數據文件
19 with open('D:\\爬蟲數據分析\調用百度地圖api\各區域房價.csv', 'r') as csvfile: #打開csv
20     reader = csv.reader(csvfile)
21     for line in reader: #讀取csv里的數據
22         # #忽略第一行
23         # if reader.line_num == 1: #由於第一行為變量名稱,故忽略掉
24         #     # line是個list,取得所有需要的值
25             b = line[0].strip() #將第一列city讀取出來並清除不需要字符
26             c = line[1].strip()#將第二列price讀取出來並清除不需要字符
27             lng = getlnglat(b)['result']['location']['lng'] #采用構造的函數來獲取經度
28             lat = getlnglat(b)['result']['location']['lat'] #獲取緯度
29             str_temp = '{"lat":' + str(lat) + ',"lng":' + str(lng) + ',"count":' + str(c) +'},'
30             print(str_temp) #也可以通過打印出來,把數據copy到百度熱力地圖api的相應位置上
31             file.write(str_temp) #寫入文檔
32 file.close() #保存
33 #百度地圖web api使用說明:http://lbsyun.baidu.com/index.php?title=webapi/direction-api-v2
34 '''
35 原作者:博觀厚積
36 鏈接:https://www.jianshu.com/p/773ff5f08a2c
37 來源:簡書
38 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
39 '''

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM