[英]How to convert list of dict of list of dict with same key as pandas dataframe
我有这样的 json 响应-
{
"returnedRowCount":2,
"columns":[
{"name":"type","type":"TEXT","index":0},
{"name":"type","type":"TEXT","index":1},
{"name":"dept","type":"TEXT","index":2}],
"rows":[
{"row":[{"v":"type1"},{"v":"name1"},{"v":"dept1"}]},
{"row":[{"v":"type2"},{"v":"name2"},{"v":"dept2"}]}
]
}
需要一种转换为 dataframe 的方法,如下所示 -
type name dept
0 type1 name1 dept1
1 type2 name2 dept1
我相信这需要理解才能首先转换为 dict 但无法弄清楚
是的,您可以使用列表推导提取列名和行数据:
import pandas as pd
j = {
"returnedRowCount":2,
"columns":[
{"name":"type","type":"TEXT","index":0},
{"name":"name","type":"TEXT","index":1},
{"name":"dept","type":"TEXT","index":2}],
"rows":[
{"row":[{"v":"type1"},{"v":"name1"},{"v":"dept1"}]},
{"row":[{"v":"type2"},{"v":"name2"},{"v":"dept2"}]}
]
}
data = [[c['v'] for c in r] for r in [row['row'] for row in j['rows']]]
columns = [c['name'] for c in j['columns']]
df = pd.DataFrame(data, columns=columns)
结果:
type name dept
0 type1 name1 dept1
1 type2 name2 dept2
你也可以这样做:
data = [[vals['v'] for vals in dat['row']] for dat in j['rows']]
pd.DataFrame(data, columns = pd.DataFrame(j['columns'])['name'].tolist())
type name dept
0 type1 name1 dept1
1 type2 name2 dept2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.