python - 如何用 Python 解析一些错误的 JSON?

标签 python json google-app-engine

我有以下来自外部输入源的 JSON 字符串:

{value: "82363549923gnyh49c9djl239pjm01223", id: 17893}

这是一个格式错误的 JSON 字符串(“id”和“value”必须用引号括起来),但无论如何我都需要解析它。我已经尝试过 simplejson 和 json-py 并且似乎无法设置它们来解析此类字符串。

我在 Google App 引擎上运行 Python 2.5,因此任何基于 C 的解决方案(如 python-cjson)都不适用。

输入格式除了上面列出的JSON外,可以改成XML或YAML,但我在项目中使用的是JSON,在特定的地方改变格式不太好。

现在我已经切换到 XML 并成功解析了数据,但期待任何可以让我切换回 JSON 的解决方案。

最佳答案

由于 YAML (>=1.2) 是 JSON 的超集,您可以这样做:

>>> import yaml
>>> s = '{value: "82363549923gnyh49c9djl239pjm01223", id: 17893}'
>>> yaml.load(s)
{'id': 17893, 'value': '82363549923gnyh49c9djl239pjm01223'}

关于python - 如何用 Python 解析一些错误的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1931454/

相关文章:

java - 需要 Jersey 客户端 api 方式来发布带有 json 有效负载和 header 的网络请求

java - 如何删除 Google App Engine (Java) 中的索引?

python - 如何在 Bokeh 中制作聚类样式树状图

python - 如何从收到的响应中抓取 html 代码?

jquery - 使用 jQuery 解析 JSON 并编写 HTML

python - 对象不是 JSON 可序列化的

python - 在 Authorize.net Python SDK 中将环境设置为生产环境

python.无法导入名称 'TextBlob'

java - 适用于 Java 的 GAE Google App Engine Captcha(无第 3 方)

python - 在 Google App Engine 上使用 couchdbkit(第 3 方库)