将python数据框转换为字典,然后转换为字符串



我有一个名为users_df的数据框,它看起来像这样

<表类> id first_name last_name signup_date tbody><<tr>1詹姆斯道明>2021-01-012标记亚当斯2021-03-023玛丽玫瑰2021-05-03

我们可以使用字典推导来创建所需格式的记录

{'users': [{'id': d.pop('id'), 'user_fields': d} for d in users_df.to_dict('r')]}

{'users': [{'id': 1,
'user_fields': {'first_name': 'James',
'last_name': 'Smith',
'signup_date': '2021-01-01'}},
{'id': 2,
'user_fields': {'first_name': 'Mark',
'last_name': 'Adams',
'signup_date': '2021-03-02'}},
{'id': 3,
'user_fields': {'first_name': 'Mary',
'last_name': 'Rose',
'signup_date': '2021-05-03'}}]}

可以使用推导式从

构建期望的结构体
users_df = pd.DataFrame([[1, 'James', 'Smith', '2021-01-01'],
[2, 'Mark', 'Adams', '2021-03-02'],
[3, 'Mary', 'Rose', '2021-05-03']],
columns=['id', 'first_name','last_name', 'signup_date'])

你已经发现了:

users_df.set_index('id').to_dict('index')

给:

{1: {'first_name': 'James', 'last_name': 'Smith', 'signup_date': '2021-01-01'},
2: {'first_name': 'Mark', 'last_name': 'Adams', 'signup_date': '2021-03-02'},
3: {'first_name': 'Mary', 'last_name': 'Rose', 'signup_date': '2021-05-03'}}

只需添加一步:

user_dict = {'users': [{'id': k, 'user_fields': v}
for k, v in users_df.set_index('id').to_dict('index')
.items()]}

:

{'users': [{'id': 1,
'user_fields': {'first_name': 'James',
'last_name': 'Smith',
'signup_date': '2021-01-01'}},
{'id': 2,
'user_fields': {'first_name': 'Mark',
'last_name': 'Adams',
'signup_date': '2021-03-02'}},
{'id': 3,
'user_fields': {'first_name': 'Mary',
'last_name': 'Rose',
'signup_date': '2021-05-03'}}]}

和一个简单的json.dumps将它转换成一个字符串…

相关内容

  • 没有找到相关文章

最新更新