如何用 ijson 和 python 解析 json

Posted

技术标签:

【中文标题】如何用 ijson 和 python 解析 json【英文标题】:How to parse json with ijson and python 【发布时间】:2013-11-28 13:40:53 【问题描述】:

我将 JSON 数据作为字典数组作为请求负载提供。

[ 
     "Field1": 1, "Feld2": "5" ,
     "Field1": 3, "Feld2": "6" 
]

我尝试了ijson.items(f, ''),它将整个 JSON 对象作为一个项目生成。有没有一种方法可以使用 ijson 逐个迭代数组中的项目?

这是我尝试将 JSON 作为单个对象生成的示例代码。

f = open("metadatam1.json")
objs = ijson.items(f, '')
for o in objs:
     print str(o) + "\n"

['Feld2': u'5', 'Field1': 1, 'Feld2': u'6', 'Field1': 3]

【问题讨论】:

请添加您的代码,展示它如何“将整个 json 作为一个项目” 【参考方案1】:

我对@9​​87654321@ 不是很熟悉,但是阅读它的一些代码后,看起来像调用items 并带有"item" 前缀应该可以获取数组的项目,而不是***对象:

for item in ijson.items(f, "item"):
    # do stuff with the item dict

【讨论】:

这只是吐出以下错误:TypeError: can't concat bytes to str @JeremyCraigMartinez:仅凭异常文本,我无法猜测该异常来自何处。我建议问你自己的问题,包括你的代码和完整的回溯。 抱歉,请忽略该评论。我开始只是用谷歌搜索它和 ijson 并很快找到了我想要的东西 这让我发疯了,这回答了“如何在 ijson 中迭代 JSON 数组”——这并不是一目了然,哈哈(相对于生成一个大列表项)跨度>

以上是关于如何用 ijson 和 python 解析 json的主要内容,如果未能解决你的问题,请参考以下文章

如何用 Python 解析 GeoJSON

如何用python解析json对象(基础篇)

如何用python解析来自websocket的数据?

如何用Python解析多层嵌套的JSON?

如何用python解析soap消息体中的参数

使用 ijson 从特定键读取 json 数据