3 回答

TA貢獻1825條經(jīng)驗 獲得超6個贊
總結(jié)評論中的對話:
無需使用simplejson庫,Python作為json模塊包含了相同的庫。
無需解碼從UTF8到unicode的響應(yīng),simplejson/ json .loads()方法可以本地處理UTF8編碼的數(shù)據(jù)。
pycurl有一個非常古老的API。除非您有特定的使用要求,否則會有更好的選擇。
requests提供最友好的API,包括JSON支持。如果可以,將您的通話替換為:
import requests
return requests.get(url).json()

TA貢獻1816條經(jīng)驗 獲得超4個贊
檢查響應(yīng)數(shù)據(jù)主體,是否存在實際數(shù)據(jù)并且數(shù)據(jù)轉(zhuǎn)儲的格式是否正確。
在大多數(shù)情況下,您的json.loads- JSONDecodeError: Expecting value: line 1 column 1 (char 0)錯誤是由于:
非JSON引用
XML / HTML輸出(即以<開頭的字符串),或
不兼容的字符編碼
最終,錯誤告訴您字符串在第一位置已經(jīng)不符合JSON。
因此,如果盡管乍一看具有看起來像JSON的數(shù)據(jù)主體,但解析仍然失敗,請嘗試替換數(shù)據(jù)主體的引號:
import sys, json
struct = {}
try:
try: #try parsing to dict
dataform = str(response_json).strip("'<>() ").replace('\'', '\"')
struct = json.loads(dataform)
except:
print repr(resonse_json)
print sys.exc_info()
注意:數(shù)據(jù)中的引號必須正確轉(zhuǎn)義
添加回答
舉報