繁体   English   中英

Python如何将混合列表写入CSV文件?

[英]Python how to write a mixed list to a csv file?

我有一个包含字典的列表,例如: data = ['a','b','c',{1:'d',2:'e'}] 我想要的csv文件是['a','b','c','d','e']

为此,我可以先将字典项转换为列表,然后将其替换为列表,然后将修改后的data写入csv文件。 但是我需要的是一种可以将data写入csv文件而无需将其更改为data = ['a','b','c','d','e']

谢谢。

鉴于列表中存在不同的类型,并且您希望以不同的方式处理每种类型,因此应尝试使用isinstance(x, type)参见文档

data = ['a', 'b', 'c', {1:'d', 2:'e'}]

def flattener(alist):
    flatten = []
    for i in alist:
        if isinstance(i, dict):
            for j in sorted(i): # Sort by keys.
                yield i[j]
        elif isinstance(i,str):
            yield i

flatten = [i for i in flattener(data)]

[OUT]:

['a', 'b', 'c', 'd', 'e']

要将列表放入csv文件,只需:

flatten = ['a', 'b', 'c', 'd', 'e']
with open('out.csv', 'w') as fout:
  fout.write(','.join(flatten))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM