csvモジュール(Python 2.7)でDictWriterを把握するのに問題があります。私はこれを持っています(ああ、問題があることを読んだので、unicodecsvライブラリを使用しています):
f = object_instance.return_a_dictionary.keys()
with open('eggs.csv', 'wb') as csvfile:
spamwriter = unicodecsv.DictWriter(csvfile, fieldnames=f)
spamwriter.writerows(object_instance.return_a_dictionary)
したがって、オブジェクトインスタンスを渡します。fは:
[u'n6s2f0e1', u'n1s0f0e0', u'n2s0f0e1', u'n3s1f0e0', u'n5s2f0e0', u'n4s1f0e1']
object_instance.return_a_dictionaryは次のとおりです。
{u'n6s2f0e1': u'stuff', u'n1s0f0e0': u'stuff', u'n2s0f0e1': u'stuff', u'n3s1f0e0': u'stuff', u'n5s2f0e0': u'stuff', u'n4s1f0e1': u'stuff'}
だから本当に私は最初の行が欲しいです:
stuff stuff stuff stuff stuff
writerowが提供された辞書を調べ、提供されたdictwriterフィールド名を使用して提供されたdictのキー名を呼び出し、値を出力するという印象を受けています。
代わりに私は得る:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "/usr/lib/python2.7/csv.py", line 153, in writerows
rows.append(self._dict_to_list(rowdict))
>>> File "/usr/lib/python2.7/csv.py", line 144, in _dict_to_list
", ".join(wrong_fields))
ValueError: dict contains fields not in fieldnames: n, 6, s, 2, f, 0, e, 1
私はこの時点でこれを理解していません。これは、通常のPythoncsvライブラリと私が見つけたUnicodecsvライブラリの両方で行われます。誰かが問題が何であるかを説明できますか?