在pandas数据框中加载一系列JSON对象

时间:2018-10-02 21:22:27

标签: python json pandas

我从here下载了一个示例数据集,它是一系列JSON对象。

{...}
{...}

我需要将它们加载到熊猫数据框。我尝试了下面的代码

import pandas as pd
import json

filename = "sample-S2-records"

df = pd.DataFrame.from_records(map(json.loads, "sample-S2-records"))

但是似乎存在解析错误

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我想念什么?

2 个答案:

答案 0 :(得分:2)

该函数需要一个JSON对象列表。例如, 数据= [json_obj_1,json_obj_2,....]

该文件不包含list的语法,仅包含一系列JSON对象。以下将解决问题:

import pandas as pd
import json

# Load content to a variable
with open('../sample-S2-records/sample-S2-records', 'r') as content_file:
    content = content_file.read().strip()

# Split content by new line
content = content.split('\n')

# Read each line which has a json obj and store json obj in a list
json_list = []
for each_line in content:
    json_list.append(json.loads(each_line))

# Load the json list in form of a string
df = pd.read_json(json.dumps(json_list))

答案 1 :(得分:1)

您可以尝试pandas.read_json方法:

import pandas as pd 
data = pd.read_json('/path/to/file.json', lines=True) 
print data

我已经使用此文件对其进行了测试,效果很好