딕셔너리를 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 코드 안에서 버전 확인 방법
- Python - File, Directory 경로 함수 소개
- Python - 작업 디렉토리, 실행 파일 경로 확인/변경 (pathlib)
- Python - 대문자/소문자 판별, 변환 방법 (lower, upper 함수)
- 파이썬스럽게 코딩하기, PEP8 가이드 정리
- numpy.arange(), 균일 간격 배열
- numpy.concatenate(), 배열 합치기
- numpy hstack, vstack 함수 (배열 연결)
- numpy.average(), 배열 가중 평균
- Numpy 배열을 List로 변환
- 파이썬 List를 Numpy 배열로 변환
- numpy flatten() 함수, 1차원 배열로 변환(평탄화)
- numpy의 min(), max() 함수 (최소, 최대 값)
- numpy.mean(), 배열 평균 계산
- numpy.log(), 로그 함수 사용 방법
- numpy.shape(), 배열 크기/형태/차원 확인
- numpy.sqrt(), 배열의 제곱근 계산
- numpy.zeros(), 0으로 채워진 배열 생성
- Python Numpy 버전 확인 방법
- numpy.argsort(), 배열 정렬
- numpy.clip(), 배열의 최대/최소 값 지정
- numpy.linspace(), 동일 간격 숫자 배열
- Numpy - random 모듈, 난수 배열 생성
- Numpy의 ndarray 사용 방법 알아보기
- numpy.transpose(), 전치 행렬 변환
- Numpy - where() 사용 방법
- Python - numpy.append(), 배열 추가
- Python numpy.random.choice(), 랜덤 샘플링
- Python numpy.reshape(), 배열 차원 변경
- Python numpy.sum(), 배열의 합
- Python numpy.unique(), 배열 중복 제거
- Python - json.dumps()로 JSON 출력하기
- Python - find() 문자 위치 찾기
- Python lower() 문자열 소문자로 변환
- Python upper() 문자열 대문자로 변환