0

我有一个关于 python 中的 csv 模块的问题。我似乎无法将字典列表写入 csv 文件。如果你能帮我找出这里的错误,那就太好了。

我得到一个 TypeError: sequence item 0: expected str instance, dict found

f = open("datadump.csv", 'wt')
try:
    fieldnames = ['type', 'name', 'contact', 'address', 'tel', 'web', 'infos']
    writer = csv.DictWriter(f, fieldnames=fieldnames, delimiter=';', extrasaction='raise')
    writer.writerow(dict((fn,fn) for fn in fieldnames))
    for entry in listd:
        writer.writerow(entry)
finally:
    f.close()

listd 是字典对象的列表,其中一个典型的对象如下所示:

{'web': '', 'tel': 'Tel.: 043 377 97 32', 'name': ' Kinderkrippe Doppelchnopf', 'contact': '', 'address': 'Rütistrasse 37d, 8134 Adliswil', 'infos': '', 'type': 'kita'}
4

1 回答 1

0

您的代码基本上未经修改对我有用。我想也许你对listd. 试试下面的完整代码。

import csv

fieldnames = ['type', 'name', 'contact', 'address', 'tel', 'web', 'infos']
data_item = {'web': '', 'tel': 'Tel.: 043 377 97 32', 'name': ' Kinderkrippe Doppelchnopf', 'contact': '', 'address': 'Rtistrasse 37d, 8134 Adliswil', 'infos': '', 'type': 'kita'}
listd = [data_item]*3
f = open("datadump.csv", 'wt')
writer = csv.DictWriter(f, fieldnames=fieldnames, delimiter=';', extrasaction='raise')
try:
    writer.writerow({fn:fn for fn in fieldnames})
    for entry in listd:
        writer.writerow(entry)
finally:
    f.close()
于 2012-06-16T14:35:44.543 回答