반응형
openpyxl을 이용하여 엑셀을 읽어 데이터를 SQLAlchemy를 사용해 DB에 넣기
from openpyxl import load_workbook # 엑셀을 불러오기위해 openpyxl 패키지 사용
from kakao_api import generate_location
from models import Vegan
import app
wb = load_workbook(filename='VeganMap.xlsx')
# 엑셀 불러오기
ws = wb.active
# 현재 활성화 되어있는 시트 선택! [ 저는 시트가 하나라서 그게 선택됩니다!]
for row in range(3, ws.max_row):
try:
lat_log = generate_location(ws.cell(row, 6).value)
except Exception as e:
lat_log = [f"error{e}", f"error{e}"]
vegan = Vegan(shop=ws.cell(row, 2).value, address=ws.cell(row, 6).value, sector=ws.cell(row, 3).value,
menu=ws.cell(row, 7).value, latitude=lat_log[0], longitude=lat_log[1])
app.db.session.add(vegan)
print(f"add 성공: {ws.cell(row, 2).value}")
app.db.session.commit()
위 코드의 generate_location은 도로명 주소를 받아 위도 경도를 리스트에 넣어 반환해주는 함수입니다.
이때 도로명 주소가 등록되어 있지 않아 Kakao API에서 위경도를 모를 경우에는 error를 출력하도록 try except를 통해 예외처리를 해주었습니다.
그 후 SQLAlchemy를 사용해 db에 session.add를 통해 데이터를 넣어주었습니다.
데이터를 넣어준 후에는 session.commit을 통해 수행한 내용을 저장해주어야 합니다!
반응형
'Study > Flask' 카테고리의 다른 글
[ Flask SQLAlchemy ] SQLAlchemy를 사용하여 엑셀파일 데이터를 DB에 넣기 (0) | 2021.12.30 |
---|---|
[ Flask ] Flask에서 SQLAlchemy 사용하기! [ Flask ORM ] (2) | 2021.12.30 |
[Flask] 플라스크 동적 페이지 라우팅과 요청 (POST) (0) | 2021.12.18 |
[Flask] Flask에서 pymongo 사용하기! (0) | 2021.12.17 |
[Flask] Flask 시작하기 (0) | 2021.12.17 |