본문 바로가기
Python notes/Web Programming

파이썬 크롤러) 파이썬으로 MySQL에 한종류의 DB만 보내는 법 (한 Column 데이터만 삽입)

by 성실한 나무 2019. 1. 7.

id와 link라는 2개의 column으로만 만들어진 테이블에

link에만 데이터를 쫙 넣으려고 하는데...


계속 에러가 ㅠ


Traceback (most recent call last):

  File "<stdin>", line 2, in <module>

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mysql/connector/cursor_cext.py", line 248, in execute

    prepared = self._cnx.prepare_for_mysql(params)

  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mysql/connector/connection_cext.py", line 535, in prepare_for_mysql

    raise ValueError("Could not process parameters")

ValueError: Could not process parameters


이리저리 삽질해본 후 알게 된 중요한 콤마(,)의 존재 !!


mport mysql.connector
conn=mysql.connector.connect(host='서버주소', port=포트번호, database='DB이름', user='유저이름', password='비밀번호')
curs=conn.cursor()
sql="""insert into link_only (link) values (%s)"""
for link in links:
curs.execute(sql, (link,))
conn.commit()


mysql.connector 를 import 하기 전에 links라는 리스트는 정의되어 있는 상황이다.

위에서 셋째줄까지는 서버에 연결하는 명령어이고,

넷째줄부터 주목을 해야 한다.


sql="""insert into 테이블이름 (데이터 넣으려는 column이름) values (%s)"""

이렇게 정의한 뒤에 for 문을 넣어서 links라는 리스트 안에 있는 애들을 DB로 차곡차곡 보내게 되는데,

여기서 중요한 것은


 curs.execute(sql, (link,))


이 빨간 점 콤마를 잊지 말아야 함 !! 


댓글