gpt4 book ai didi

python:如何使用 ijson 库解析 json 数组流

转载 作者:太空宇宙 更新时间:2023-11-04 05:40:10 30 4
gpt4 key购买 nike

传入的数据类似于以下内容:

[{
"foo": "bar"
}]
[{
"bar": "baz"
}]
[{
"baz": "foo"
}]

如您所见,对象数组串在一起。 JSON-ish

ijson 能够处理第一个数组,然后我得到:

ijson.common.JSONError: Additional data

当它命中后续数组时。我该如何解决这个问题?

最佳答案

这是解决问题的第一步,至少有一个有效的正则表达式替换可以将完整的字符串转换为有效的 json。仅当您可以在解析为 json 之前读取完整的输入流时,它才有效。

import re

input = ''
for line in inputStream:
input = input + line
# input == '[{"foo": "bar"}][{"bar": "baz"}][{"baz": "foo"}]'

# wrap in [] and put commas between each ][
sanitizedInput = re.sub(r"\]\[", "],[", "[%s]" % input)
# sanitizedInput == '[[{"foo": "bar"}],[{"bar": "baz"}],[{"baz": "foo"}]]'

# then parse sanitizedInput
parsed = json.loads(sanitizedInput)
print parsed #=> [[{u'foo': u'bar'}], [{u'bar': u'baz'}], [{u'baz': u'foo'}]]

注意:由于您将整个内容作为字符串读取,因此可以使用 json 而不是 ijson

关于python:如何使用 ijson 库解析 json 数组流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34217042/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com