我得到了这样的JSON数据:
jsonData = {
"0":{
"columnA":"a",
"columnB":"b"
},
"1":{
"columnA":"c",
"columnB":"d"
}
}
如何将其转换为这样的数据帧:
rowData
0 {"columnA":"a","columnB":"b"}
1 {"columnA":"c","columnB":"d"}
这是我尝试过的:
df = pd.DataFrame({'rowData': jsonData})
但是我收到一个错误:
如果使用所有标量值,则必须传递索引
所以我尝试了:
df = pd.DataFrame({'rowData': jsonData}, index=[0])
但事实证明:
rowData
0 {"0":{"columnA":"a","columnB":"b"},"1":{"columnA":"c","columnB":"d"}}
答案 0 :(得分:1)
对我来说,您的解决方案很好:
5 em
如有必要,将json转换为dict:
jsonData = {
"0":{
"columnA":"a",
"columnB":"b"
},
"1":{
"columnA":"c",
"columnB":"d"
}
}
df = pd.DataFrame({'rowData': jsonData})
print (df)
rowData
0 {'columnA': 'a', 'columnB': 'b'}
1 {'columnA': 'c', 'columnB': 'd'}
如果DataFrame中的每个值都需要json:
import json
jsonData = json.dumps({
"0":{
"columnA":"a",
"columnB":"b"
},
"1":{
"columnA":"c",
"columnB":"d"
}
})
df = pd.DataFrame({'rowData': json.loads(jsonData)})
print (df)
rowData
0 {'columnA': 'a', 'columnB': 'b'}
1 {'columnA': 'c', 'columnB': 'd'}
答案 1 :(得分:0)
我只是将您的数据添加到列表中,并由此创建了一个数据框:
all_data = []
for value in jsonData.values():
all_data.append(value)
df = pd.DataFrame(all_data)
Output:
Index columnA columnB
0 a b
1 c d