3 回答
TA贡献1825条经验 获得超6个赞
总结评论中的对话:
无需使用simplejson库,Python作为json模块包含了相同的库。
无需解码从UTF8到unicode的响应,simplejson/ json .loads()方法可以本地处理UTF8编码的数据。
pycurl有一个非常古老的API。除非您有特定的使用要求,否则会有更好的选择。
requests提供最友好的API,包括JSON支持。如果可以,将您的通话替换为:
import requests
return requests.get(url).json()
TA贡献1816条经验 获得超4个赞
检查响应数据主体,是否存在实际数据并且数据转储的格式是否正确。
在大多数情况下,您的json.loads- JSONDecodeError: Expecting value: line 1 column 1 (char 0)错误是由于:
非JSON引用
XML / HTML输出(即以<开头的字符串),或
不兼容的字符编码
最终,错误告诉您字符串在第一位置已经不符合JSON。
因此,如果尽管乍一看具有看起来像JSON的数据主体,但解析仍然失败,请尝试替换数据主体的引号:
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()
注意:数据中的引号必须正确转义
添加回答
举报