Python 如何以行形式读入json文件

Python 如何以行形式读入json文件,python,json,Python,Json,我得到了一个json文件,格式如下,每条记录用行表示: { "A":0, "B":2 }{ "A":3, "B":4 } 如何在列表中读取它?未测试 import pandas as pd str = '{"A":0,"B":2}{"A":3,"B":4}' list(pd.read_json(str)) 在输入周围添加[和],然后尝试以下操作: import json with open('data.json') as data_file: data = json

我得到了一个json文件,格式如下,每条记录用行表示:

{
 "A":0,
 "B":2
}{
 "A":3,
 "B":4
}
如何在列表中读取它?

未测试

import pandas as pd

str = '{"A":0,"B":2}{"A":3,"B":4}'
list(pd.read_json(str))

在输入周围添加
[
]
,然后尝试以下操作:

import json
with open('data.json') as data_file:    
    data = json.load(data_file)
    print (data)
这段代码返回这一行

[{'A':0,'B':2},{'A':3,'B':4}]

当我将此数据放入文件时:

[
{
 "A":0,
 "B":2
},{
 "A":3,
 "B":4
}
]
如果无法编辑文件data.json,则可以从该文件中读取字符串,在该字符串周围添加
[
]
,并调用
json.loads()

更新:哦,我看到我在JSON文件之间添加了逗号分隔符。对于初始输入,我的代码不起作用。但修改此文件的生成器是否更好?(即添加逗号分隔符)

如果您的数据正是该格式,我们可以将其编辑为有效的JSON

import json

source = '''\
{
 "A":0,
 "B":2
}{
 "A":3,
 "B":4
}{
 "C":5,
 "D":6
}
'''

fixed = '[' + source.replace('}{', '},{') + ']'
lst = json.loads(fixed)
print(lst)
输出

[{'A': 0, 'B': 2}, {'A': 3, 'B': 4}, {'C': 5, 'D': 6}]

这依赖于每个记录由
'分隔{'
。如果不是这样,我们可以使用正则表达式来执行搜索和替换操作。

那么,让我们正确地表述您的问题:您在一个文件中有多个JSON文件的串联,不是吗?您需要读取所有这些串联的文件,并以某种方式保存数据。这是真的吗?如果是,e的预期结果是什么您问题中的示例数据?是的,这就是我想要表达的。但是@Jaba给出的示例与我的情况不同。我认为我应该为文件创建一个解析脚本。否,您可以使用现有的解析器。我已经更新了答案。如果每个JSON对象位于单独的行上,这将很容易。但是显示的数据格式很难处理,因为e每个对象跨越多行,并且对象之间没有换行符。@Jaba这个问题与那个问题不同,因为这个问题的输入数据有多个JSON对象连接在一起,没有分隔符。您的数据是否完全一样,只有简单的字符串-数字对,没有嵌套和
}{
在一行上,没有额外的空格?@PM 2Ring Yes,每行的每个json数据都有一次。但是通过manul添加数据和其他选项,它最终变成了这样。