딕셔너리를 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 - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)