python進行地理編碼正反解碼
阿新 • • 發佈:2018-11-26
import json from urllib.request import urlopen, quote import requests def getlnglat(address): #http://api.map.baidu.com/geocoder/v2/?address=北京市海淀區上地十街10號&output=json&ak=您的ak&callback=showLocation //GET請求 url = 'http://api.map.baidu.com/geocoder/v2/' output = 'json' ak = '你的AK' # 瀏覽器端金鑰 address = quote(address) # 由於本文地址變數為中文,為防止亂碼,先用quote進行編碼 uri = url + '?' + 'address=' + address + '&output=' + output + '&ak=' + ak req = urlopen(uri) res = req.read().decode() temp = json.loads(res) lat = temp['result']['location']['lat'] lng = temp['result']['location']['lng'] code=temp['status'] print(lat, lng,code,) return lat, lng if __name__ == '__main__': getlnglat('臨潁縣邢莊村') #showLocation&&showLocation # 返回的json內容({"status":0,"result":{"location":{"lng":116.3084202915042,"lat":40.05703033345938},"precise":1,"confidence":80,"comprehension":100,"level":"道路"}}) #可以檢視js的編碼內容,正編碼與反編碼返回的json資料是不一樣的