1
对于一个学校任务,我们需要在SQL中构建一个数据库,其中包含有关多位艺术家的信息。在作业的第一部分,我们需要将来自CSV文件的数据转储到SQL TABLE中。但是这似乎并不适用于我的代码。 TABLES在那里,代码运行时没有错误,但数据似乎没有放在TABLE中。我不知道是什么原因。为什么这段代码不会将csv文件中的行放入sql表中?
import sqlite3
import csv
artistsDb = sqlite3.connect("artists.sqlite3")
artistsDbCursor = artistsDb.cursor()
myQueryString = "CREATE TABLE artists (" +\
"artistName CHAR (256)," +\
"artistName CHAR (256)," +\
"artistsDateOfBirth CHAR(256),"+\
"artistYearsActive CHAR (256),"+\
"artistsURL CHAR (256),"+\
"artistsXNLFileName CHAR(256));"
artistsDbCursor.execute ( myQueryString)
artistsDb.commit
myFile = open ("artists.csv")
myReader = csv.reader (myFile, delimiter = ";")
myQueryString = "INSERT INTO artists VALUES (?, NULL, NULL,NULL,NULL)"
for myRowIterator in myReader:
myValues = myRowIterator
artistsDbCursor.execute(myQueryString, myValues,)
'artistsDb.commit'需要调用(虽然DDL语句 - 这是直接的) - 所以它的'artistsDb.commit()'(不包括parantheses),并且在你的for循环插入行之后,确保你再次提交以确保交易发生。 –