저는 csv 파일을 구문 분석하고 MySQL 테이블에 대한 입력을 생성하는 스크립트 작업을하고 있습니다.Python MySQL INSERT from csv
모든 데이터가 csv.reader를 통해 가져 오므로 모든 행은 문자열 목록입니다. 행을 반복하고 데이터베이스에 다른 항목을 넣고 싶습니다.
나는 다음과 같은 시험 작동시킬 수 있습니다
sql = "INSERT INTO `testSmall` (`idtestSmall`, `column1`, `column2`) VALUES (1, 'entry1', 'entry2');"
cursor.execute (sql)
그래서 내 SQL 연결 작품과 원칙 SQL 구문은 괜찮습니다. 나는 거기에 넣고 싶은 항목에 액세스 할 수 있으며, 내가 원하는 데이터 유형과 정확합니다.
allData = csv.reader(open('TestTable.csv', 'rb'), delimiter=',', quotechar='|')
for row in allData:
sql = "INSERT INTO `testSmall` (`idtestSmall`, `column1`, `column2`) VALUES (row[0], row[1], row[2]);"
cursor.execute (sql)
이것은 구문 오류 발생 :
이Error 1064: You have an error in your SQL syntax; check the manual that corresponds to our MySQL server version for the right syntax to use near '[0], row[1], row[2])' at line 1
그러나 데이터 유형이 올바른지 및 그러나, 나는 반복 내에서 변수와 같은 SQL 구문을 사용할 수 있도록하지 않는 것 SQL 문법은 작업 예제와 동일합니다 ...
누구나 내가 잘못하고있는 것과 어떻게 작동시키는 지 말해 줄 수 있습니까?
는 (결국, 난 그냥 MySQL의 대량 가져 오기를 사용하지 않는 이유입니다,뿐만 아니라 순수한 CSV 항목뿐만 아니라 파생 된 값을 삽입 할.) 당신의 도움에 미리감사합니다! Lastalda
아! 고마워, 그건 의미가있어! – Lastalda
멋진 코드 조각! 왜 "문자열 형식을 변환하는 동안 모든 인수가 변환되지 않습니까?" : – Pitto