【问题标题】:Convert Python Dictionary To .csv file [duplicate]将 Python 字典转换为 .csv 文件 [重复]
【发布时间】:2021-04-01 20:45:47
【问题描述】:

我想将我的 python 字典转换为 .csv 文件,其中字典由 "keywordvalue":[listofdata] 组成,表示我希望我的 csv 文件以这样的方式查看,即关键字值是 csv 文件中的列和列表中的数据将停留在与键对应的列中。 示例 -->

my_dict={"date":['11/2/19','3/11/20'],"name":['dexter','morgan']

CSV_file 输出 -->

date,name
'11/2/19','dexter'
'3/11/20','morgan'

【问题讨论】:

    标签: python


    【解决方案1】:

    使用 csv 模块:

    import csv
    
    field_names = ['Date', 'Name']
    
    my_dict=[{"date":'11/2/19',"name":'dexter'}, {"date":'3/11/20',"name":'morgan'}]
    
    with open('file.csv', 'w') as csvfile: 
        writer = csv.DictWriter(csvfile, fieldnames = field_names) 
        writer.writeheader() 
        writer.writerows(my_dict)
    

    更多信息请查看: https://www.geeksforgeeks.org/how-to-save-a-python-dictionary-to-a-csv-file/

    【讨论】:

    • 在该文档中,它是字典列表。它就像 my_dict = [{dict1},{dict2},{dict3}]
    • 这行不通,每一行都必须是一个字典
    • 是的,我认为我们应该首先将 dictionary with list values 更改为 list of dictionaries
    【解决方案2】:

    您将不得不稍微调整一下您的 dict,但这样的事情会起作用:

    import csv
    
    field_names = ['date', 'name']
    
    my_dict={"date":['11/2/19','3/11/20'],"name":['dexter','morgan']}
    
    with open('file.csv', 'w') as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(field_names)
        rows = zip(*[my_dict[name] for name in field_names])
        writer.writerows(rows)
    

    zip 的这种用法是“转置”的常用习语,所以:

    zip(*[my_dict[name] for name in field_names])
    

    所以,例如:

    In [2]: my_dict={"date":['11/2/19','3/11/20'],"name":['dexter','morgan']}
    
    In [2]: field_names = ['date', 'name']
    
    In [3]: list(zip(*[my_dict[name] for name in field_names]))
    Out[3]: [('11/2/19', 'dexter'), ('3/11/20', 'morgan')]
    

    【讨论】:

      猜你喜欢
      • 2021-12-22
      • 2017-09-13
      • 1970-01-01
      • 2018-08-13
      • 2021-12-22
      • 1970-01-01
      • 2023-03-20
      • 2017-03-27
      • 2018-12-09
      相关资源
      最近更新 更多