1
あるリストには値が1つしかなく、他のリストには多くのリストが含まれるリストの辞書があります。このコードを使用してPython:異なるインデックスの辞書リストをCSVファイルに書き込む
は、私が意図した出力を得る:
多少のようになりますimport csv
from collections import OrderedDict
my_dict = OrderedDict()
my_dict["Header1"] = [1,2,3]
my_dict["Header2"] = [4,5,6]
#if file doesn't exist...
with open('mycsv.csv', 'wb') as f:
w = csv.writer(f, delimiter=';')
w.writerow(my_dict.keys())
with open('mycsv.csv', 'ab') as f:
w = csv.writer(f, delimiter=';')
w.writerows(zip(*my_dict.values()))
:
ヘッダ1、ヘッダ2
1; 4
2; 5
3; 6
ヘッダ21; 4
ヘッダ1:私はこの種のリストの辞書を持っている場合
しかし、私の場合には、:
my_dict["Header1"] = [1,2,3]
my_dict["Header2"] = [4]
私のような出力を得ます私は持っているつもりだった:
ヘッダー1;ヘッダー2
1; 4
2;
3;
これを解決する方法の提案はありますか?
ありがとうございます(申し訳ありませんが、何か悪いスレッドの書式設定については、私の最初の質問です:P)!
['itertools.izip_longest'](https://docs.python.org/2/library/itertools.html#itertools.izip_longest)を調べましたか? 'zip'は全ての引数を最短の長さに切り捨てます。 – jonrsharpe
'izip_longest'を' '' 'のfillvalueで使うことができます。' csv.DictWriter'を見て自動的にヘッダを扱い、ファイルを2回開くのを避けることもできます。 –
@jonrsharpeは私と同じように働きました必要、ありがとう! @JonClements最初のファイルが開く前に '(if(os.path.isfile(...)== False):(...))'を使用していますので、すでに存在していませんでしたが、私はそれを調べます、ありがとう! –