MySQLdb을 사용하여 텍스트 파일의 많은 데이터를 MySQL 서버로 업로드하고 있습니다. 이것은 수동으로 'as', '123', 12, 23
같은 문자열을 준비하는 경우 잘 작동하지만 문자열과 int를 연결해야하므로이 목록을 생성하는 목록을 반복하는 방법을 알 수는 없습니다.MySQLdb를 사용하여 MySql 서버에 int와 문자열 추가하기
다음과 같이 작동하는 insert 문의 예는 다음과 같습니다
이import MySQLdb
# sample data
table = 'TestTable'
header = ['ST', 'CODE', 'BC001', 'BC002', 'BC003']
values = [['AA', '1234567', 20, 30, 40], ['BB', '1234567', 20, 30, 40], ['CC', '1234567', 20, 30, 40],['DD', '1234567', 20, 30, 40]]
# local SQL server on my computer
db = MySQLdb.connect (host = 'localhost', user = 'root', passwd = '', db = 'test')
# prepare a cursor object using cursor() method
cursor = db.cursor()
# header columns
sql1 = '('
for i in range(len(header)):
sql1 += header[i] + ','
sql1 = 'INSERT INTO ' + table + sql1[:-1] + ')'
# now loop through data values and combine with header each time
for i in range(len(values)):
sql2 = ''
for j in range(len(values[i])):
sql2 += values[i][j] + ',' #error occurs here
# structure: sql2 = """ VALUES ('AA', '1234567', 20, 30, 40)"""
sql2 = 'VALUES ' + table + sql2[:-1] + ')'
sql = sql1 + sql2
try:
# Execute the SQL command
cursor.execute(sql)
# Commit your changes in the database
db.commit()
except:
# Rollback in case there is any error
db.rollback()
# disconnect from server
db.close()
내가 오류 메시지는 다음과 같습니다
""" INSERT INTO ACS(ST, CODE, BC001, BC002, BC003)
VALUES ('AK', '1234567', 20, 30, 40)"""
이 내가 목록에서이 문장을 생성하기 위해 시도하는 방법이다
TypeError: unsupported operand type(s) for +: 'int' and 'str'
나는 왜 그런 일이 벌어지는 지 이해하지만, 다른 방법을 생각할 수는 없습니다. 문자열을 생성합니다. 이 문자열을 만드는 더 좋은 방법이 있습니까?
Win7 64 비트에서 Python27을 사용하고 있습니다.
미안 내가 구글에 그것을 보니 그런 일이 pymsql으로 없다? 홈페이지 pls에 대한 링크를 제공 할 수 있습니까? –
죄송합니다. 잘못된 패키지 이름을 작성했습니다. 그것은 MySQLdb입니다. 나는 질문을 업데이트 할 것입니다; 미안합니다. – djq