Python에서 MySQL에 CSV 데이터 로드
이 코드 조각은 CSV 데이터를 MySQL 데이터베이스 테이블에 로드하려고 시도합니다. 그러나 사용자는 테이블에 아무것도 삽입되지 않는 문제에 직면하고 있습니다.
코드는 csv 및 MySQLdb 모듈을 사용하여 CSV 파일을 읽고 해당 데이터를 testcsv라는 MySQL 테이블에 삽입합니다. CSV 파일에는 이름, 클래스, 마크라는 세 개의 열이 있어야 합니다.
코드를 실행하면 사용자는 오류 메시지를 보고하지 않지만 테이블은 비어 있습니다. 이 문제를 해결하기 위해 코드에는 변경 사항을 데이터베이스에 커밋하는 중요한 단계가 누락되어 있습니다.
MySQL에서 새 레코드 삽입과 같은 데이터베이스 변경 사항은 커밋될 때까지 영구적이지 않습니다. 기본적으로 MySQL은 자동 커밋 모드로 작동합니다. 즉, 각 문이 자동으로 커밋됩니다. 그러나 트랜잭션을 처리할 때와 같은 특정 상황에서는 변경 사항을 명시적으로 커밋해야 합니다.
제공된 코드에서 각 데이터 행을 삽입한 후 다음 줄이 누락되었습니다.
mydb.commit()
이 줄을 추가하면 각 INSERT 문으로 변경된 내용이 데이터베이스에 커밋됩니다. 결과적으로 데이터가 testcsv 테이블에 성공적으로 삽입됩니다. 업데이트된 코드는 다음과 같습니다.
import csv import MySQLdb mydb = MySQLdb.connect(host='localhost', user='root', passwd='', db='mydb') cursor = mydb.cursor() csv_data = csv.reader(file('students.csv')) for row in csv_data: cursor.execute('INSERT INTO testcsv(names, \ classes, mark )' \ 'VALUES("%s", "%s", "%s")', row) mydb.commit() #close the connection to the database. cursor.close() print "Done"
각 삽입 작업 후에 변경 사항을 커밋하면 사용자는 데이터가 MySQL 테이블에 영구적으로 저장되도록 할 수 있습니다.
위 내용은 내 Python 코드가 내 MySQL 데이터베이스에 CSV 데이터를 삽입하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!