我正在处理一个包含JSON格式数据但由于以下内容而导致JSON解析器无法识别数据的文件
1 - 用额外的反斜杠填充对象
2 - 对象的开始和结束括号位于引号{"menu":"{ }"}
我使用了replace()
函数,但它清除了导致问题的所有黑色斜杠。
示例数据
{"menu": "{
\"URL\": \"http:\\/\\/www.example.com\\/concepts\\/test\\/data\\/\",
\"value\": \"File\",
\"popup\":\"testfile\"
}"}
预期产出
{"menu": {
"url": "http:\/\/www.example.com\/concepts\/test\/data\/",
"value": "File",
"popup":"testfile"
}}
任何帮助都将不胜感激。
谢谢
答案 0 :(得分:3)
您的menu
对象只是一个字符串的JSON,可以很容易地提取。
import json
inputjs = r"""{"menu": "{
\"URL\": \"http:\\/\\/www.example.com\\/concepts\\/test\\/data\\/\",
\"value\": \"File\",
\"popup\":\"testfile\"
}"}"""
result = json.loads(inputjs.replace('\n', ''))
menu = result["menu"]
result = json.loads(menu);
json.dumps({'menu':result})