본문 바로가기
언어/python

(python) CSV to MySQL

by 스퀴시 2020. 8. 19.
728x90
SMALL

python을 이용한 CSV to MYSQL

 

  • 주의점
    • CSV값은 str형임으로 DB의 각 column을 str형으로 두거나 데이터 형변환 필요
      • 형변환 방법에 대해선 좀 더 공부해봐야 할듯
    • Column 이름 맞춰주기
    • csv의 1번 row에 column name 제거해주기
  • code
import scipy.io
import csv
import pymysql


connect = pymysql.connect(host='127.0.0.1', user='root', password='passwd',

                       db='test', charset='utf8')

curs = connect.cursor()

connect.commit()

f = open('urllist_2feature.csv', 'r')

csvReader = csv.reader(f)

for row in csvReader:

    url = (row[0])
    checkFormTag = (row[1])
    textFieldInPopup = (row[2])
    label = (row[3])
    
    print(url)
    print(checkFormTag)
    print(textFieldInPopup)
    print(label)

    sql = """insert into url (url, checkFormTag, textFieldInPopup, label) values (%s, %s, %s, %s)"""
	#sql문 작성
    
    curs.execute(sql, (url, checkFormTag, textFieldInPopup, label))


#db의 변화 저장
connnect.commit()
f.close()
connect.close()

 

  • error
pymysql.err.DataError: (1406, "Data too long for column 'url' at row 1")

해결법

- mysql에서 global.sql mode ''으로 설정

mysql> SET @@global.sql_mode= ‘’;

 

LIST

'언어 > python' 카테고리의 다른 글

python Numpy  (0) 2020.07.15
python 반복문  (0) 2020.07.15
List 자료형  (0) 2020.07.15
python 자료형(문자열)  (0) 2020.07.15
python 자료형 (숫자형)  (0) 2020.07.15