为了账号安全,请及时绑定邮箱和手机立即绑定

我们如何将包含列表的 dict 导出为 csv 文件中的值

我们如何将包含列表的 dict 导出为 csv 文件中的值

POPMUISE 2022-10-18 16:32:02
假设这是输入格式...    {'ID':[1,2,3,4,5,6,7,8,9,10],     'Name':['A','B','C','D','E','F','G'],     Flag:['True'],     City:'',}我想在 python 的 csv 文件中导出这些数据,如下所示ID   Name  Flag  City1      A   True   ''2      B          ''3      c     4      D5      E等等...我们该怎么做..?提前感谢 PF:我从 django 模型中获取输入格式
查看完整描述

3 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

首先,您必须确保字典值中的所有列表都具有相同的长度。任何其他情况都是不好的做法。


假设是这种情况,例如


d = {'ID':[1,2,3,4,5,6,7],

 'Name':['A','B','C','D','E','F','G'],

 'Flag':[True, False, False, False, False, False, False],

 'City':['']*7,

}

现在您可以构建一个数据框


import pandas as pd


df = pd.DataFrame.from_dict(d)

并将其转换为 CSV


df.to_csv('/tmp/test.csv', index=False)


查看完整回答
反对 回复 2022-10-18
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

如果您不是像您提到的那样严格寻找 csv,并且可以在其中包含NaNs,请尝试使用pandas.


import pandas as pd

d = {

    "ID": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],

    "Name": ["A", "B", "C", "D", "E", "F", "G"],

    "Flag": ["True"],

    "City": "",

}

df = pd.DataFrame(dict([(k, pd.Series(v)) for k, v in d.items()]))


df.to_csv("1.csv",index=False)

这会用 填充不可用的元素NaN。


输出:


   ID Name  Flag City

0   1    A  True     

1   2    B   NaN  NaN

2   3    C   NaN  NaN

3   4    D   NaN  NaN

4   5    E   NaN  NaN

5   6    F   NaN  NaN

6   7    G   NaN  NaN

7   8  NaN   NaN  NaN

8   9  NaN   NaN  NaN

9  10  NaN   NaN  NaN


查看完整回答
反对 回复 2022-10-18
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

import csv

columns = list(dict.keys())


try:

    with open(output_file, 'w') as csvfile:

        writer = csv.DictWriter(csvfile, fieldnames=columns)

        writer.writeheader()

        for data in dict:

            writer.writerow(data)

except IOError:

    print("I/O error")


查看完整回答
反对 回复 2022-10-18
  • 3 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信