json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)


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時,最好先輸出一下參數,檢查一下是否符合格式,這樣就能減少錯誤,當然也可能有別的原因。


免責聲明!

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



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