我需要读取一些JSON数据进行处理。我有一个包含多个JSON对象的单行文件,如何解析它?在
我希望输出是一个每个对象只有一行的文件。在
我尝试过一种暴力的方法json.loads递归地检查json是否有效,但每次运行程序时都会得到不同的结果
import json
with open('sample.json') as inp:
s = inp.read()
jsons = []
start, end = s.find('{'), s.find('}')
while True:
try:
jsons.append(json.loads(s[start:end + 1]))
print(jsons)
except ValueError:
end = end + 1 + s[end + 1:].find('}')
else:
s = s[end + 1:]
if not s:
break
start, end = s.find('{'), s.find('}')
for x in jsons:
writeToFilee(x)
这里可以看到json格式 https://pastebin.com/DgbyjAG9
为什么不直接使用^{} 的
pos
属性来告诉你在哪里划界呢?在比如:
将演示数据用作:
^{pr2}$给了我两个元素,但我想你还有更多?在
要使用标准库完成此操作,写出来的内容如下所示:
否则,^{} 包适合处理这种数据格式
以下代码适用于我:
在@Chris A的评论之后,我准备了一个可以正常工作的片段:
然而,这个例子一旦'}{'字符串出现在JSON中的某个值中,就会变得毫无价值,所以我强烈建议使用@Sam Mason的解决方案
相关问题 更多 >
编程相关推荐