본문 바로가기

코딩/파이썬 표준 라이브러리

[CSV] 6장. 딕셔너리 데이터를 CSV 파일에 쓰기

 

딕셔너리 형태의 데이터를 CSV 파일에 쓰기(생성) 위한 파이썬 코드 예는 다음과 같습니다.

 

import csv

field_list = ['#', '이름', '구독']

dict_list = [
    {field_list[0]: 1, field_list[1]: 'BLACKPINK', field_list[2]: '5230만'},
    {field_list[0]: 2, field_list[1]: 'Big Hit Labels', field_list[2]: '4610만'},
    {field_list[0]: 3, field_list[1]: 'BANGTANTV', field_list[2]: '3940만'},
    {field_list[0]: 4, field_list[1]: 'SMTOWN', field_list[2]: '2470만'},
    {field_list[0]: 5, field_list[1]: '1MILLION Dance Studio', field_list[2]: '2240만'}
    ]


with open('python_csv_06_write_dict_1.csv', 'wt', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=field_list)
    writer.writeheader()
    for item in dict_list:
        writer.writerow(item)

 

#,이름,구독
1,BLACKPINK,5230만
2,Big Hit Labels,4610만
3,BANGTANTV,3940만
4,SMTOWN,2470만
5,1MILLION Dance Studio,2240만

 

1. DictWriter 클래스 생성 시 fieldnames 전달인자 정의는 필수이며, fieldnames으로 전달하는 열 정보와 딕셔너리의  key 값이 일치하지 않으면, 오류가 발생합니다. 대신 key의 개수보다 fieldnames의 개수가 더 많아도 오류는 발생하지 않습니다.

 

class csv.DictWriter(f, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

 

2. writer.writeheader 메서드를 추가하면 생성되는 CSV 파일 첫번째 라인에 열 정보(위의 코드에선 리스트 field_list의 값)가 추가됩니다.