{'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文件,因为某些键在列表中有多个值,我想写下所有这些值。
答案 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
检索列表。