我有一个来自YouTube的iframe API的JSON文件,需要进行预处理。我想将此JSON数据放入pandas数据框中,其中每个JSON键将是一列,每个记录的“事件”应是一个新行。
我能够使用 read_json 将数据作为数据帧加载,但与此同时,每个事件的键都显示为数组。
这是我的JSON数据的样子:
{
"events":[
{
"timemillis":1563467463580,
"date":"18.7.2019",
"time":"18:31:03,580",
"name":"Player is loading",
"data":""
},
{
"timemillis":1563467463668,
"date":"18.7.2019",
"time":"18:31:03,668",
"name":"Player is loaded",
"data":"5"
}
]
}
这就是我将其转换为数据框的过程:
data=pd.read_json("file.json")
df=pd.DataFrame(data)
print(df)
输出看起来像这样:
0 {'timemillis': 1563469276604, 'date': '18.7.20...
1 {'timemillis': 1563469276694, 'date': '18.7.20...
...
如何将输出转换为一个表,在这些表中,这些键具有单独的列,例如'timemmillis','date','name'等?我以前从未使用过JSON,所以有点困惑。
答案 0 :(得分:2)
values_list
结果
import pandas as pd
import json
data = {
"events":[
{
"timemillis":1563467463580,
"date":"18.7.2019",
"time":"18:31:03,580",
"name":"Player is loading",
"data":""
},
{
"timemillis":1563467463668,
"date":"18.7.2019",
"time":"18:31:03,668",
"name":"Player is loaded",
"data":"5"
}
]
}
# or read data from file
# rather than reading file directly to pandas dataframe read as json
# data=pd.read_json("file.json")
with open('file.json') as json_file:
data = json.load(json_file)
df=pd.DataFrame(data['events'])
print(df)
答案 1 :(得分:0)
import pandas as pd
df=pd.read_json("file.json",orient='columns')
rows = []
for i,r in df.iterrows():
rows.append({'eventid':i+1,'timemillis':r['events']['timemillis'],'name':r['events']['name']})
df = pd.DataFrame(rows)
print(df)
现在您可以将此df插入数据库