[python] pymysql을 이용하여 INSERT하기

2021. 10. 4. 20:24개인 공부 공간/Python

최근 날씨 관련 open api 활용 토이 프로젝트 진행 도중 직접 생성한 aws rds에 pymysql을 이용하여 데이터를 입력해야 했었습니다. SQL 쿼리문은 많이 작성해봤지만 파이썬에서 사용해본적은 없어서 pymysql 사용하기 위해 그 당시 참고한 내용들을 정리한 글입니다.

 

코랩 환경(파이썬 version 3.7.12) 설명입니다. 파이썬에서 mysql 이나 mariaDB를 활용하기 위해서는 pymysql을 이용해야 합니다.

 

설명 코드:

# install & 필요 library
!pip install pymysql
import pymysql

# aws rds 연결
db = pymysql.connect(host = 'host-url',
                     port = , # 일반적으로 3306
                     user = 'user_name',
                     passwd = 'pass_wd',
                     db = 'db_name',
                     charset = 'utf8') # 한글 깨짐 방지
# 커서 획득       
cursor = db.cursor(pymysql.cursors.DictCursor)

# 토이 프로젝트 데이터
# weather_data = {'date':'2021-10-04', 'hour':'20:00:00',
# 'latitude':37, 'longitude':126,
# 'TMP':23, 'WSD':7.8,
# 'code':'0', 'state':'없음',
# 'POP':30, 'PCP':0}

# INSERT 하는 과정
sql = "INSERT INTO short_term_forecast(date, hour, latitude, longitude, TMP, WSD, code, state, POP, PCP) VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"
cursor.execute(sql, (weather_data['date'],weather_data['hour'],
                     weather_data['latitude'],weather_data['longitude'],
                     weather_data['TMP'],weather_data['WSD'],
                     weather_data['code'],weather_data['state'],
                     weather_data['POP'],weather_data['PCP']))
db.commit()

위의 예시 코드에서는 딕셔너리 형태의 데이터를 INSERT하는 예시만 존재하지만, 리스트 형태의 데이터도 INSERT가 가능합니다.

출처: https://privatedevelopnote.tistory.com/81 [개인노트]