【发布时间】:2014-07-02 09:53:22
【问题描述】:
我有一个这样的输入字符串:
'{ query: { and: [ { and: [ { _t: "Manifest" }, { or: [ { and: [ { _i: { gt: "53b2616fe4b028359ac3fea4" } } ] } ] }, { _s: "active" } ] }, { ENu_v: { elemMatch: { EOJ_v: { in: [ "*", "Production", "QA " ] } } } } ] }, orderby: { _i: 1 } } '
我想把它改成字典。
a = '{ query: { and: [ { and: [ { _t: "Manifest" }, { or: [ { and: [ { _i: { gt: "53b2616fe4b028359ac3fea4" } } ] } ] }, { _s: "active" } ] }, { ENu_v: { elemMatch: { EOJ_v: { in: [ "*", "Production", "QA " ] } } } } ] }, orderby: { _i: 1 } } '
json.loads(a)
但这会抛出异常,因为
query 应该是 "query",
and 应该是 "and"
等等。
所以我想将string 之类的所有字符串更改为"string",我该如何实现?
【问题讨论】:
-
它从何而来?如果您或您认识的人创建了它,我会建议在那里修复它。否则,您必须进行自己的自定义解析以区分“标识符”和其他项目({、[、(、:、整数等)
-
我建议查看stackoverflow.com/questions/8815586/… 和stackoverflow.com/questions/18280279/… 以获取任何正则表达式示例。也许他们会在你的“json”上工作。
-
相关:Converting str to dict in python,它还将 JavaScript 输出修复为 JSON,并添加了一个替代库来解析它而无需正则表达式技巧。