我想读取一个json文件,其中每行包含一个新的json对象。
文件如下所示 -
{'P':'a1','D':'b1','T':'c1'}
{'P':'a2','D':'b2','T':'c2'}
{'P':'a3','D':'b3','T':'c3'}
{'P':'a4','D':'b4','T':'c4'}
我正在尝试阅读此文件,如下所示 -
print pd.read_json("sample.json", lines = True)
我面临异常 -
ValueError: Expected object or value
实际上这个sample.json文件大约是240mb。此文件的格式仅限于此。它的每一行包含一个新的json对象,我想使用 python pandas 读取此文件。
答案 0 :(得分:0)
正如其他人在评论中所说,它并不是真正的JSON。您可以使用ast.literal_eval()
:
import pandas as pd
import ast
with open('sample.json') as f:
content = f.readlines()
pd.DataFrame([ast.literal_eval(line) for line in content])
或用双打代替单引号:
import pandas as pd
import json
with open('sample.json') as f:
content = f.readlines()
pd.DataFrame([json.loads(line.replace("'", '"')) for line in content])