我收到错误消息:OperationalError:没有这样的列:当我尝试运行下面的代码时没有。错误是因为SQLite行迭代器给了我一个'None',其中null值是我执行str(行)时的。
我可以对字符串进行替换并替换,None,with,Null,我想但是想知道是否有更好的解决方案?
for row in c.execute(sqlStr):
tmp = str(row)[:-1] +', ' + str(rowCount) + ')'
insertStr = 'Insert into tblMain (userID, PlayedTimeStamp, TimeSinceFirstPlay,ArtistID, ArtistName, TrackID, TrackName,historyID) Values ' + tmp
c.execute(insertStr)
答案 0 :(得分:0)
你在每次循环迭代时都是buidling并执行语句,但我想你想要的是收集数据首先插入(在tmp
中),然后将它连接到语句。因此,列出8列以插入数据,但每次循环迭代仅提供两列。更重要的是,你的代码片段没有显示rowCount
来自何处,我猜它没有定义,因此在尝试将其转换为字符串时替换为“无”。
总而言之,这些代码非常难看并且有点混淆;我建议清理它并使用print
语句来调试查询的实际内容。