将JSON数据转换为数据帧



我需要将底部的JSON数据转换为从API调用响应到数据框架的数据。我需要这样的数据:

v   v   name    Age
--------------------
0  1a  1c   sam    10
1  2a  2c   tom    40

我尝试使用df = pd.json_normalize(response.json(), record_path=['rows'])。但是所有的数据都在多行中,只有一列。如果我能把v换成另一个列名就好了。

"rows": [
{
"f": [
{
"v": "1a"
},
{
"v": "[{ "name" : "sam", "Age" = "10"}]"
},
{
"v": "1c"
}
]
},
{
"f": [
{
"v": "2a"
},
{
"v": "[{ "name" : "tom", "Age" = "40"}]"
},
{
"v": "2c"
}

]
}
}

每次一行。

import json
import pandas as pd
x = json.load( open('x.json'))
print(x)
#{'rows': [{'f': [{'v': '1a'}, {'v': '1b'}, {'v': '1c'}]}, {'f': [{'v': '2a'}, {'v': '2b'}, {'v': '2c'}]}]}
data = [[r['v'] for r in row['f']] for row in x['rows']]
print(data)
#[['1a', '1b', '1c'], ['2a', '2b', '2c']]
df = pd.DataFrame(data)

最新更新