在Python中使用多个值生成CSV

时间:2014-06-03 08:29:18

标签: python csv python-3.x

{'id': '/en/45_2006', 'type': '/film/film', 'directed_by': ['Gary Lennon'], 'genre': ['Black comedy', 'Thriller', 'Psychological thriller', 'Indie film', 'Action Film', 'Crime Thriller', 'Crime Fiction', 'Drama'], 'name': '.45', 'initial_release_date': '2006-11-30'}

我有一个列表,我想从中创建一个CSV文件。

以下代码似乎工作正常。但是当字典有一个键(列表)的多个值时,它会按原样写入整个列表 -

    keys = ['name', 'directed_by', 'genre', 'type', 'id', 'initial_release_date']
    with open('film.csv', 'w', newline='', encoding='utf8') as csvfile:
        dict_writer = csv.DictWriter(csvfile, keys)
        dict_writer.writeheader()
        dict_writer.writerows(filmlist)

我应该如何编写CSV文件,因为某些键在列表中有多个值,我想写下所有这些值。

2 个答案:

答案 0 :(得分:1)

这是jonrsharpes答案的延伸,以便为您的清单处理特殊的分隔符:

special_delim = '%'
for k, v in d.items():
     if isinstance(v, list):
        d[k] = special_delim.join(v)

答案 1 :(得分:0)

您可以先将所有列表转换为字符串:

for k, v in d.items():
    if isinstance(v, list):
        d[k] = str(v)

并在您重新阅读ast.literal_eval文件时使用csv检索列表。