我向后端API发出请求,并以json格式获取数据
反应是这样的。请注意,主体键值将不同,有超过100个。data1.json如下所示
[
{
"body": "[{\"task_ids\":[],\"accounts\":[],\"entity_ids\":[12814],\"guid\":\"2DFEB337-5F5D-4DF5-84CF-E951D237D448\",\"id\":\"0034030fb97251b3\",\"subject\":\"Uploaded Application\"}]",
code": 200,
"headers": {
"Content-Type": "application/json"
},
"msg": "OK",
"name": "0"
},
{
"body": "[{\"task_ids\":[],\"accounts\":[],\"entity_ids\":[12814],\"guid\":\"2DFEB337-5F5D-4DF5-84CF-E951D237D448\",\"id\":\"0034030fb97251b3\",\"subject\":\"Uploaded Application\",\}]",
code": 200,
"headers": {
"Content-Type": "application/json"
},
"msg": "OK",
"name": "0"
},
...
]
我需要摆脱
理想情况下应该是这样的。在
^{pr2}$我尝试过replace和很多方法,但是没有一个方法可以替换\所以我甚至不能进入第2步。我发现,如果我把它保存到一个文本文件中,反斜杠会被替换,但是我不能再次将响应作为json对象发送回来。到目前为止,获取data1.json文件的代码如下所示。在
data = json.loads(r.text)
with open('data1.json', 'w') as outfile:
json.dump(data, outfile, sort_keys = True, indent = 4,
ensure_ascii = False)
关于如何达到我期望的输出的第一点有什么建议吗?谢谢。在
JSON数据格式不正确且JSON无效(“key”字符串中缺少引号(例如
code": 200,
),第二个字典正文对象中的语法无效,如mentioned in comment(例如"Uploaded Application\",\}]"
))。在但是,在修复这些问题之后,可以使用一个简单的
str.replace()
语句来获得预期的JSON格式。然后,只需解析JSON内容并构建所需的列表:现在检查
^{pr2}$l
的内容:(对于初学者来说,您提供的是无效的JSON,
json
要么无法完全解析它,要么生成虚假的东西。您需要确保正确提取响应,如果这确实是响应,请让发送方修复它。)现在,关于被问到的问题:
你不需要做什么特别的事。这就是JSON如何表示本身包含JSON特殊字符的值(“用反斜杠转义”)。在
如果您通过一个合适的JSON解析器(例如
json.loads()
)加载数据,它将撤消该转义,并且在data[0]['body']
中,您将看到正确的数据。在当然,由于该字符串本身就是JSON,如果需要将其拆分为有意义的部分,那么还需要使用
json
进一步解析它。。。在相关问题 更多 >
编程相关推荐