python進階寶典14- json 資料處理
阿新 • • 發佈:2019-01-28
先看程式碼:
## 用 loads() 讀取json,返回一個python字典 import json stringJson = '{"name":"Zophie","iscat":true,"micecaught":0,"felineiq":null}' # json字串總是用雙引號 jsonToPython = json.loads(stringJson) print(jsonToPython) # {'name': 'Zophie', 'iscat': True, 'micecaught': 0, 'felineiq': None} # dumps() 輸出 json 格式 pythonValue = {'name': 'Zophie', 'iscat': True, 'micecaught': 0, 'felineiq': None} stringJson = json.dumps(pythonValue) print(stringJson) ## 下載並處理天氣預報資料 # 1. 命令列讀取請求天氣的位置 -- 處理 sys.argv # 2. 從OpenWeatherMap.org 下載JSON天氣資料 --呼叫 requests.get() # 3. 講JSON資料轉成python資料結構 -- json.loads() # 4. 列印未來兩天的天氣 # Prints the weather for a location from the command line. import json, requests, sys # Compute location from command ine arguments. if len(sys.argv) < 2: print('Usage: quickWeather.py location') sys.exit() location = ' '.join(sys.argv[1:]) # Download the JSON data from OpenWeatherMap.org's API. url = 'http://api.map.baidu.com/telematics/v3/weather?location=%s&output=json&ak=8ixCCFzlBB617YX7tONI2P5B\ &mcode=1C:6B:42:33:E8:A6:DC:A2:11:6E:26:EC:84:BD:42:E3:8E:6B:57:9A;com.example.administrator.jsontest' % (location) response = requests.get(url) response.raise_for_status() # Load JSON data into a Python variable. weatherData = json.loads(response.text) print('Current weather in %s:' % (location) ) print(weatherData) # w = weatherData['list'] # 根據具體資料列印 # print(w[0]['weather'][0]['main']) # 根據具體資料列印
先說下,下面這個天氣預報的例子不一定能跑出來。試驗了下,幾個國外的天氣 api 訪問不了,與網路控制有關;在網上找了幾個號稱免費的,驗證下來都不行。 還是隻有使用百度的API了。
需要去註冊一個百度API的開發金鑰ak,具體步驟可參考此前文章:
Python使用百度地圖API實現地點資訊轉換及房價指數熱力地圖 https://blog.csdn.net/ebzxw/article/details/80265796
另外,國家氣象局的可以試一下,好像註冊後要等48小時稽核。