2017-05-05 19 views
1

私は1つのキーと複数のリスト値を持つ辞書を持っています。リストの辞書の各値(リスト)を新しい行に書き込む

{'A-03131': [['Component', 'P-011510', '5'], ['Component', 'P-011319', '1'], ['Component', 'A-03134', '1'], ['Component', 'P-009591', '1'], ['Component', 'P-011509', '1'], ['Component', 'P-011461', '1'], ['Component', 'P-011563', '1'], ['Component', 'A-03094', '2'], ['Component', 'A-03146', '1'], ['Component', 'P-011465', '4']]} 

私は、各リスト値をCSVの独自の行に書き込もうとしています。 私は現在、これを持っている:

with open(file, 'w+') as outfile : 
     w = csv.writer(outfile) 
     w.writerows(sub_assembly.items()) 

をしかし、それは1行に完全な辞書を書いています。

答えて

0

私が見つけたdict.values()私のニーズに応えます。

filename = parent_item + '_bom.csv' 
file = os.path.join(OUTPATH, filename) 
header_row = ['Parent Item ', parent_item] 
with open(file, 'w+') as outfile: 
    w = csv.writer(outfile, delimiter=',') 
    w.writerow(header_row) 
    for value in main_bom.values(): 
     w.writerows(value) 
1

基本的にExcelファイルを扱う場合は、openpyxlパッケージを使用してください。 すべての行に直接書き込みを実行する代わりに、各リストを行に挿入します。 openpyxlを使用して

wb = openpyxl.Worksheet()

ws = wb.active

for value in d['A-03131']: cell(row = row,column = column).value = value

wb.save('assembly.xlsx')

これは、Excelの操作を行うための、よりエレガントな方法です。

+0

出力をさらに下位に処理するには、出力をCSV形式にする必要があります。私は私の解決策を見つけたと思うし、一度それが働くと投稿する – AlliDeacon

+0

私はあなたが答えを持っていると思う。 – bigbounty

関連する問題