2017-05-05 5 views
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()) 

을하지만 그 한 줄의 전체 사전을 쓰고있다.

답변

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를 사용

,

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

wb.save('assembly.xlsx')

이 엑셀 작업을 수행하는 더 우아한 방법입니다

ws = wb.active

wb = openpyxl.Worksheet()

.

+0

출력을 줄 아래쪽으로 처리하려면 CSV 형식이어야합니다. 내 솔루션을 찾은 것 같아요 일단 내가 그것을 얻을 게시 할 것입니다 – AlliDeacon

+0

나는 당신이 대답을 가지고 생각합니다. – bigbounty