首页 > 解决方案 > 如何将这种类型的带有字典的列表转换为 csv 文件?

问题描述

我有一个如下列表:

'jose-123': {'name': 'alex','age': '30', 'weight': 190},
'jose-124': {'name': 'mark','age: '20','weight': 180},
'jose-126': {'name': 'mark','age: '20','weight': 180},
'jose-125': {'name': 'mike','age': '50','weight': 49}

我想用 python 将其转换为 CSV 文件,如下所示:

单元 姓名 年龄 重量
何塞-123 亚历克斯 30 190
何塞-124 标记 20 180
何塞-126 标记 20 180
何塞-125 麦克风 50 49

标签: python

解决方案


如果您的原始数据确实是您在问题中显示的方式,那么您可以将所述字符串包裹在外大括号中。

import ast
import pandas as pd

raw = """\
'jose-123': {'name': 'alex','age': '30', 'weight': 190},
'jose-124': {'name': 'mark','age': '20','weight': 180},
'jose-126': {'name': 'mark','age': '20','weight': 180},
'jose-125': {'name': 'mike','age': '50','weight': 49}
"""
some_string = f"{{{raw}}}" # wrap in braces {}
d = ast.literal_eval(some_string)

temp = []
for k, v in d.items():
    a = {'unit': k}
    a.update(v)
    temp.append(a)

df = pd.DataFrame(temp)

print(df)

推荐阅读