如何在行中读取json文件

时间:2018-11-23 07:31:24

标签: python json

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

{
 "A":0,
 "B":2
}{
 "A":3,
 "B":4
}

如何在列表中阅读它?

3 个答案:

答案 0 :(得分:3)

如果您的数据正是该格式的 ,我们可以将其编辑为有效的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}]

这取决于每个记录由'}{'分隔。如果不是这种情况,我们可以使用regex进行搜索和替换操作。

答案 1 :(得分:0)

未经测试

import pandas as pd

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

答案 2 :(得分:0)

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

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文件之间添加了逗号分隔符。对于初始输入,我的代码不起作用。但是修改该文件的生成器可能更好吗? (即添加逗号分隔符)