딕셔너리를 CSV 파일로 저장하고 읽는 방법을 소개합니다.
1. 딕셔너리를 CSV 파일로 저장
csv.writer(file)
는 csv 형식으로 file에 저장할 수 있는 writer를 리턴합니다. writerow()
함수로 key와 value를 CSV 파일에 추가할 수 있습니다.
아래 예제는 딕셔너리의 내용을 dict.csv
파일에 저장합니다.
import csv
my_dict = {'1': 'a', '2': 'b', '3': 'c', '4': 'd'}
with open("dict.csv", 'w') as file:
writer = csv.writer(file)
for k, v in my_dict.items():
writer.writerow([k, v])
dict.csv
1,a
2,b
3,c
4,d
1.1 CSV 파일 읽고 딕셔너리로 변환
위에서 저장한 dict.csv
파일을 읽고 딕셔너리로 변환하려면, 아래와 같이 csv.reader()
로 읽고 row에서 key와 value를 딕셔너리에 추가하면 됩니다.
import csv
my_dict = {}
with open("dict.csv", 'r') as file:
reader = csv.reader(file)
for row in reader:
my_dict[row[0]] = row[1]
print(my_dict)
Output:
{'1': 'a', '2': 'b', '3': 'c', '4': 'd'}
2. Header가 있는 딕셔너리를 CSV 파일에 저장
CSV의 가장 첫번째 줄에 row 데이터가 뭔지 알려주는 것을 header라고 합니다.
DictWriter(file, fieldnames=header)
처럼 인자로 header를 전달하면 header를 인식하는 writer
가 생성됩니다. 그리고 writeheader()
를 호출하면 파일에 header row가 추가됩니다. writerow(dict)
를 호출하면 header의 값을 key로 갖고 있는 딕셔너리가 file에 저장됩니다.
아래 예제는 header를 key로 갖고 있는 딕셔너리를 header와 함께 CSV 파일에 저장합니다.
import csv
dict_list = [
{'Number': '1', 'Alphabet': 'a'},
{'Number': '2', 'Alphabet': 'b'},
{'Number': '3', 'Alphabet': 'c'},
{'Number': '4', 'Alphabet': 'd'},
]
with open("dict.csv", 'w') as file:
header = ['Number', 'Alphabet']
writer = csv.DictWriter(file, fieldnames=header)
writer.writeheader()
for element in dict_list:
writer.writerow(element)
dict.csv
Number,Alphabet
1,a
2,b
3,c
4,d
2.1 header가 있는 CSV 파일 읽기
위에서 저장한 dict.csv
파일은 아래와 같이 읽을 수 있습니다.
zip(header, row)
를 사용하여 row 데이터를 딕셔너리로 만들 수 있습니다. 단순히 row만 출력하면 value 값만 출력합니다.
import csv
header = ['Number', 'Alphabet']
with open("dict.csv", 'r') as file:
reader = csv.reader(file)
for row in reader:
row_dict = dict(zip(header, row))
print(row)
print(row_dict)
Output:
['Number', 'Alphabet']
{'Number': 'Number', 'Alphabet': 'Alphabet'}
['1', 'a']
{'Number': '1', 'Alphabet': 'a'}
['2', 'b']
{'Number': '2', 'Alphabet': 'b'}
['3', 'c']
{'Number': '3', 'Alphabet': 'c'}
['4', 'd']
{'Number': '4', 'Alphabet': 'd'}
Loading script...
Related Posts
- Python 에러 해결, 'conda' 용어가 cmdlet, 함수, 스크립트 ... 인식되지 않습니다.
- Python 에러 해결, AttributeError: module 'jwt' has no attribute 'encode'
- Python - assert 사용 방법
- Python - Counter로 Collection 개수 세기
- Python - enumerate(), for/index 예제
- Python - count(), len() 함수
- Python - join() 함수, 문자열 합치기
- Python - 줄바꿈 입력 방법
- Python - 딕셔너리를 JSON으로 변환
- Python - JSON을 딕셔너리로 변환
- Python - 딕셔너리 Index로 접근/순회 방법
- Python - 딕셔너 리 CSV 파일 쓰기/읽기
- Python - 딕셔너리 update() 함수
- Python - JSON 예쁘게(pretty), 정렬하여 출력
- Python - CSV 파일을 JSON 파일로 변환
- Python - CSV 파일을 리스트로 변환
- Python - List를 Set로 변환
- Python - Set을 List로 변환
- Python - 텍스트 파일 이어서 쓰기
- Python - 파일 끝 찾기
- Python - 파일 수정 시간, 생성 시간 확인