首页 > 解决方案 > 如何在 CSV 文件中显示嵌套字典

问题描述

我有动态字段,我需要 CSV 文件在其列中显示字段,您可以在此图像中看到,动态字段显示文字 {} 括号并将它们全部显示在一行中,在此处输入图像描述我需要在每一列中分开我没有t 关心每个动态字段的父头是否重复(JOB_INSIGHTS FOR INSTANCE)。我希望每个嵌套的 dict 元素都在自己的列中。提前致谢!!

更新:使用以下代码复制的输出:dict 示例:

my_list_didct= [{
    "main_rating": "7",
    "job_salary": "$51K",
    "job_insights": {
        "Job Type : ": "Full-time",
        "Job Function : ": "Software Developer",
    "aditional_salaries":{"dev_ops":"$44k",
                          "sysadmin":"$30k"}
    }]


    try:
        ruta_guardado = os.path.join(out_path_file,
                                     'file_{today.strftime('%d-%m-%Y')}_{readfrom_text_file('dat')}.csv")
        with open(
                ruta_guardado, mode, newline='', encoding='utf-8') as file:
            csv.register_dialect('myDialect',
                                 delimiter=';',
                                 quoting=csv.QUOTE_ALL)
            print(items)
            headers = list(items[0].keys())
            csv_writer = csv.DictWriter(file, fieldnames=headers, dialect="myDialect")
            csv_writer.writeheader()
            my_logger.info(items)
            csv_writer.writerows(items)

在顶部的示例中,并不总是找到额外的薪水,有时返回空字典,在这种情况下,我想要一个空的 excel 字段。或者如果存在像其他字段一样传播而不是字典。:L 谢谢编码员。

我正在寻找的那种输出。 在此处输入图像描述

标签: pythoncsv

解决方案


首先,如果不将其转换为DataFramedict ,则无法将其保存到.csv文件中。因此,您需要将其转换为DataFrame,然后将其保存到您要保存的任何文件中

另外,如果你没有文件,只写文件的名称和格式,它会立即保存。

代码语法

import pandas as pd

my_list_didct= [{
    "main_rating": "7",
    "job_salary": "$51K",
    "job_insights": {
        "Job Type : ": "Full-time",
        "Job Function : ": "Software Developer",
    "aditional_salaries":{"dev_ops":"$44k",
                          "sysadmin":"$30k"}
    }}]

df = pd.DataFrame(my_list_didct)
df.to_csv('file.csv', index=False)

输出 在此处输入图像描述


推荐阅读