1.json模塊常用的四個函數
1 import json 2 json.load() # 將一個存儲在文件中的json對象(str)轉化為相對應的python對象 3 json.loads() # 將一個json對象(str)轉化為相對應的python對象 4 json.dump() # 將python的對象轉化為對應的json對象(str),並存放在文件中 5 json.dumps() # 將python的對象轉化為對應的json對象(str)
2.使用json模塊經常遇見的bug
1 File "I:\Anaconda\lib\json\decoder.py", line 357, in raw_decode 2 raise JSONDecodeError("Expecting value", s, err.value) from None 3 json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
今天在編寫爬蟲時,遇到了這個問題,在百度上查了很久,都沒有查到,最后才發現原來是這里錯了
import requests, json response = requests.get(url="http://www.example.com", headers=headers) #傳回的是json對象 result = json.loads(response.text)
我折騰了好久,一會懷疑response.text的編碼出了問題,一會有懷疑少給了一個參數(Expecting value: line 1 column 1 (char 0)),后來發現response.status_code = 200沒問題,但是因為網絡問題,導致返回的數據不是json類型,而是網絡出現問題的網頁格式,這個值不是json.loads()期待的參數,所以出現錯誤。
以后在使用json時,最好先輸出一下參數,檢查一下是否符合格式,這樣就能減少錯誤,當然也可能有別的原因。