0

Pythonのcsvモジュールについて質問があります。辞書のリストをcsvファイルに書き込めないようです。ここで間違いを見つけるのを手伝っていただければ素晴らしいと思います。

TypeErrorが発生します:シーケンスアイテム0:予想されるstrインスタンス、dictが見つかりました

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 に答える