python - 如何处理json中的大括号转义

标签 python json

我有一个json格式的字符串需要用python2加载,但是在json.loads()时会出错。

{"api":"wdetail","v":"5.0","re​​t":["100"],"data":{"apiStack":[{"name":"esi ","value":"{\"api\":\"com.aaa.detail\",\"v\":\"1.0\",\"ret\":[\"11\"]} "}]}}

加载上面的json字符串时,会提示错误:ValueError: Expecting , delimiter: line 1 column 87 (char 86),我发现这是因为中大括号前有引号"value":"{\"api\",如果我删除引号,则 json 加载有效。

{"api":"wdetail","v":"5.0","re​​t":["100"],"data":{"apiStack":[{"name":"esi ","value":{\"api\":\"com.aaa.detail\",\"v\":\"1.0\",\"ret\":[\"11\"]}} ]}}

关于第一个字符串,我如何要求 json.loads 支持它。否则我需要把引号一一去掉,很无聊。

最佳答案

您可以使用str.replace()从第一个字符串中删除 "{}":

new_s = s.replace('"{', '{').replace('}"', '}')  # s is your first string here
data = json.loads(new_s)

关于python - 如何处理json中的大括号转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47430767/

相关文章:

python - zip 中的损坏数据导致下载后无法解压

java - 如何使用迭代器 java 将 JSONObject 转换为新 Map 的所有键

javascript - 如何从 JSON 到 JS 获取键的值?

python - pip 每次下载都会失败(找不到满足要求的版本**(来自版本 : ) No matching distribution found for **)

android - Firebase 数据库错误 - 反序列化时需要一个映射,但得到了一个类 java.util.ArrayList

javascript - 错误 : Uncaught SyntaxError: Unexpected end of JSON input

json - 在 Go 开发中过度使用 map[string]interface{}?

python - 在 Windows 上运行 celerybeat - 不可能完成的任务?

python - 无法使用selenium从页面中名为 'heading'的每个类获取数据

python - 更改字体名称而不更改默认字体python