【发布时间】:2021-10-11 09:14:34
【问题描述】:
我正在尝试将 JSON 输入解析为 Python 中的字符串,但由于 JSON 输入的格式不正确,因此无法解析为列表或字典(由于中间件的限制,此处无法做太多事情。)
{
"Records": "{Output=[{_fields=[{Entity=ABC , No=12345, LineNo= 1, EffDate=20200630}, {Entity=ABC , No=567, LineNo= 1, EffDate=20200630}]}"
}
我尝试了json.loads 和ast.literal(无效语法错误)。
如何加载这个?
【问题讨论】:
-
如果您在谈论
Records的值中的内容,那根本就不是 JSON。这不仅仅是缺少引号的问题(尽管这是一个问题),它还使用=而不是:。这只是一种完全不同的数据格式。 -
您拥有的是有效的 JSON,但
Records键的值不是(也不是正确的 Python dict 显示),甚至不是特别接近。您需要找到其他解析器,或说服生产者使其成为有效的 JSON。 -
您能否详细说明您的问题?粘贴代码示例?您在问题中输入的字符串似乎格式正确,其中一个 JSON 项目带有“记录”键,值是键后双引号中包含的字符串。我最好的选择是,也许你在字符串中加入了某种转义字符。请粘贴返回语法错误的代码。
-
@czyngis 我怀疑 OP 正在尝试做类似
json.loads(result["Records"])的事情,这注定要失败。 -
@T.J.Crowder 是的,这是另一个问题,但我正在考虑将 = 替换为 : 因为它是一个字符串,但引号是主要问题
标签: python json python-3.x python-2.7 jsonparser