我目前正在尝试通过Python填充SQL数据库(用于赋值)。我创建了一个函数来帮助我做到这一点。 但是,当我运行该函数时,我收到一个“列表索引超出范围”的索引错误。我将感谢所有和任何帮助
我试过恢复到一些旧代码,但对当前的问题没有帮助
据我所知,显然没有“field[1]”(否则我就不会收到这个错误)我已经尝试在函数的每一步发生时打印它。。。结果发现,我可以,事实上,打印难以捉摸的价值,但仍然收到一个错误,关于这一行
我已经包括了所有的代码,我相信是相关的,但是,如果你认为我一定是遗漏了什么,请随时与我联系。非常感谢
def populateStudentTable(textFile,targetTable):
connection = sqlite3.connect(dbName)
cursor = connection.cursor()
numRecs = 0
dataRecs = []
textRec = textFile.readline()
while textRec != "":
numRecs += 1
field = textRec.split(", ")
print(field)
print(field[0])
print(field[1])
textRec = textFile.readline()
当我运行程序时,它会打印列表中的第二项:字段[1] 但在那之后,它给了我一个错误
['VENNGEOR', 'Georgia', 'Venna', '12', 'Maths', '8596746234']
VENNGEOR
Georgia
这是我收到的错误:
Traceback (most recent call last):
File "h:\Digital Solutions\VS Code\Dev.py", line 22, in <module>
numRecs = populateStudentTable(textFile,"tblMentor")
File "h:\Digital Solutions\VS Code\Dev.py", line 14, in
populateStudentTable:print(field[1])
IndexError: list index out of range
在阅读了一些评论并进行了更多的调试之后,我发现“buran”是正确的。我只是留下了一些空行,并试图在空行上运行一个循环
textFile
中的一行不包含所需的,
字符数。当您执行field = textRec.split(", ")
时,如果行中少于两个,
,则生成的field
可能没有您所期望的3个元素检查文件的内容,或者干脆不打印
field
printfield
本身的元素。这会让你更容易理解你错在哪里另外请注意,您是按“,”(而不是“,”)拆分的,因此请注意这样的情况也可能导致错误:
相关问题 更多 >
编程相关推荐