Python 使用json模块解码json字符串时出现问题
联系服务器后,我得到以下字符串作为响应Python 使用json模块解码json字符串时出现问题,python,json,reddit,Python,Json,Reddit,联系服务器后,我得到以下字符串作为响应 {"kind": "t2", "data": {"has_mail": null, "name": "shadyabhi", "created": 1273919273.0, "created_utc": 1273919273.0, "link_karma": 1343, "comment_karma": 301, "is_gold": false, "is_mod": false, "id": "425zf", "has_mod_mail": null}
{"kind": "t2", "data": {"has_mail": null, "name": "shadyabhi", "created": 1273919273.0, "created_utc": 1273919273.0, "link_karma": 1343, "comment_karma": 301, "is_gold": false, "is_mod": false, "id": "425zf", "has_mod_mail": null}}
在我的脚本中存储为类型“str”
现在,当我尝试使用json.dumps(mystring,sort_keys=True,indent=4)对其进行解码时,我得到了这个结果
"{\"kind\": \"t2\", \"data\": {\"has_mail\": null, \"name\": \"shadyabhi\", \"created\": 1273919273.0, \"created_utc\": 1273919273.0, \"link_karma\": 1343, \"comment_karma\": 301, \"is_gold\": false, \"is_mod\": false, \"id\": \"425zf\", \"has_mod_mail\": null}}"
应该是这样的
shadyabhi@archlinux ~ $ echo '{"kind": "t2", "data": {"has_mail": "null", "name": "shadyabhi", "created": 1273919273.0, "created_utc": 1273919273.0, "link_karma": 1343, "comment_karma": 299, "is_gold": "false", "is_mod": "false", "id": "425zf", "has_mod_mail": "null"}}' | python2 -mjson.tool
{
"data": {
"comment_karma": 299,
"created": 1273919273.0,
"created_utc": 1273919273.0,
"has_mail": "null",
"has_mod_mail": "null",
"id": "425zf",
"is_gold": "false",
"is_mod": "false",
"link_karma": 1343,
"name": "shadyabhi"
},
"kind": "t2"
}
shadyabhi@archlinux ~ $
那么,出了什么问题呢?您需要先加载它,然后才能转储它。试试这个:
data = json.loads(returnFromWebService)
json.dumps(data, sort_keys=True, indent=4)
要添加更多细节,您将收到一个字符串,然后要求json库将其转储到一个字符串中。那没有多大意义。您首先需要做的是将数据放入一个更有意义的容器中。通过调用
loads
可以获取返回的字符串值,并将其解析到实际的Python字典中。然后,您可以将该数据传递到转储
,该转储使用您请求的格式输出字符串。您需要先加载它,然后才能转储它。试试这个:
data = json.loads(returnFromWebService)
json.dumps(data, sort_keys=True, indent=4)
要添加更多细节,您将收到一个字符串,然后要求json库将其转储到一个字符串中。那没有多大意义。您首先需要做的是将数据放入一个更有意义的容器中。通过调用
loads
可以获取返回的字符串值,并将其解析到实际的Python字典中。然后,您可以将该数据传递到转储
,该转储使用您请求的格式输出一个字符串。您可以向后处理。如果要将字符串转换为数据结构,需要使用json.loads(字符串)
json.dumps()
用于将数据结构转换为json编码的字符串。您可以反向使用。如果要将字符串转换为数据结构,需要使用json.loads(字符串)
json.dumps()
用于将数据结构转换为json编码的字符串。您应该dump
一个对象(如字典),然后它会变成字符串,而不是反过来。。。看
使用
json.loads()
。您应该转储一个对象(如字典),然后它会变成一个字符串,而不是反过来。。。看
使用json.loads()
。您需要json.loads
。dumps
方法用于另一种方式(将对象转储为json字符串)。您需要json.loads
。dumps
方法用于另一种方式(将对象转储为json字符串)。Aha,在查看文档时,我想知道如何获得该对象。现在,我知道了。因此,通过使用loads,我反序列化了string.Aha,在查看文档时,我想知道如何获得该obj。现在,我知道了。因此,通过使用加载,我反序列化了字符串。