규도자 개발 블로그
[Python] csv를 dict로 본문
[Python] csv를 dict로
가끔씩 csv로 저장된 요소들을 불러와서 dict로 써야할 때가 있다. 특히 dbeaver나 mysql workbench처럼 결과값을 간단하게 csv형태로 저장할 수 있는 어플리케이션을 다룰 때 많이 필요하더라. 먼저 코드는 아래와 같다.
import csv
mydict = {}
with open('csv_example.csv', mode='r') as file:
reader = csv.reader(file)
attrs = []
result = []
for row in reader:
if len(attrs) < 1:
attrs = row
continue
temp_row_dict = dict()
for key, value in zip(attrs, row):
temp_row_dict[key] = value
result.append(temp_row_dict)
for row in result:
print(row)
위 스크립트와 같은 경로에 csv_example.csv
라는 파일이 있으면 해당 파일의 첫줄을 key로, 아래 이어지는 값들을 value로 dict가 생성된다. 예를 들어
id | name | price | category | etc |
---|---|---|---|---|
1 | aa | 3000 | poi | |
2 | bb | 200 | ||
3 | ee | 500 | pipo | |
4 | ww | 200 | ee | |
5 | 100 | ee | ||
6 | aa | 5000 | rr | oipo |
7 | bb | 50000 | tt | pipo |
위와 같은 csv파일을 넣는다고 하면
{'id': '1', 'name': 'aa', 'price': '3000', 'category': 'qq', 'etc': 'poi'}
{'id': '2', 'name': 'bb', 'price': '200', 'category': 'qq', 'etc': ''}
{'id': '3', 'name': 'ee', 'price': '500', 'category': 'qq', 'etc': 'pipo'}
{'id': '4', 'name': 'ww', 'price': '200', 'category': 'ee', 'etc': ''}
{'id': '5', 'name': 'qq', 'price': '100', 'category': 'ee', 'etc': ''}
{'id': '6', 'name': 'aa', 'price': '5000', 'category': 'rr', 'etc': 'oipo'}
{'id': '7', 'name': 'bb', 'price': '50000', 'category': 'tt', 'etc': 'pipo'}
이런 형태로 출력된다.
DB에 어떤 값을 넣어야 하는데 해당 데이터가 csv로 존재할 때 사용하기 좋다. csv가 애초에 파싱하기도 쉽고 가벼우니 말이다. 하지만 정말 주의해야할 점은 말 그대로 csv이기 때문에 자료형 적용이 안 된다. 위 결과값에서 보면 알겠지만 응당 int로 됐어야 할 price가 문자열로 돼있는 걸 확인할 수 있을 것이다. 해당 부분을 주의해서 사용하면 된다.
'Python > Python' 카테고리의 다른 글
파이썬의 이스터에그 (0) | 2022.05.16 |
---|---|
Python 프로세스 킬러 (Process killer) (0) | 2022.02.15 |
파이썬 스크립트 terminal에서 실행할 때 ModuleNotFoundError 해결하기 (0) | 2022.01.09 |
Python에서 setInterval함수 쓰기 (특정 시간마다 함수 반복하기) (0) | 2022.01.08 |
pip 모든 패키지 삭제하기 + xargs명령어 (0) | 2021.12.15 |
Comments