pandas 数据帧到 json 有多个键
pandas dataframe to json with multiple keys
我有一个 pandas 数据框,如下所示:
id
x1
x2
x3
action
23432
example1
1
name
Create
678786
example2
1
name
Create
如何将 pandas 数据帧转换为这种 json 格式?
[
{
"action": "Create",
"payload": {
"id": "23432",
"x1": "example1",
"x2": "1",
"x3": "name"
}
},
{
"action": "Create",
"payload": {
"id": "678786",
"x1": "example2",
"x2": "1",
"x3": "name"
}
}
]
我试过 pd.json_normalize 但无法正常工作。我还引用了 this 问题,但由于需要 groupby,它有点不同。
如果您不介意输入列,一种解决方案可以是:
df['payload'] = df[['id','x1','x2','x3']].to_dict(orient='records')
df_json = df[['action','payload']].to_json(orient='records')
print(df_json)
import pandas as pd
import json
# intialise data of lists.
data = {'id':['23432', '678786'],
'x1':['example1', 'example2'],
'x2':['1', '1'],
'x3':['name', 'name'],
'action':['Create', 'Create']}
# Create DataFrame
df = pd.DataFrame(data)
print(json.dumps(df.apply(func=lambda x:{'action':x.action,'payload':x[['id','x1','x2','x3']].to_dict()},axis=1).to_list()))
我有一个 pandas 数据框,如下所示:
id | x1 | x2 | x3 | action |
---|---|---|---|---|
23432 | example1 | 1 | name | Create |
678786 | example2 | 1 | name | Create |
如何将 pandas 数据帧转换为这种 json 格式?
[
{
"action": "Create",
"payload": {
"id": "23432",
"x1": "example1",
"x2": "1",
"x3": "name"
}
},
{
"action": "Create",
"payload": {
"id": "678786",
"x1": "example2",
"x2": "1",
"x3": "name"
}
}
]
我试过 pd.json_normalize 但无法正常工作。我还引用了 this 问题,但由于需要 groupby,它有点不同。
如果您不介意输入列,一种解决方案可以是:
df['payload'] = df[['id','x1','x2','x3']].to_dict(orient='records')
df_json = df[['action','payload']].to_json(orient='records')
print(df_json)
import pandas as pd
import json
# intialise data of lists.
data = {'id':['23432', '678786'],
'x1':['example1', 'example2'],
'x2':['1', '1'],
'x3':['name', 'name'],
'action':['Create', 'Create']}
# Create DataFrame
df = pd.DataFrame(data)
print(json.dumps(df.apply(func=lambda x:{'action':x.action,'payload':x[['id','x1','x2','x3']].to_dict()},axis=1).to_list()))