OperationalError:没有这样的列:无

时间:2017-05-22 17:47:10

标签: python-3.x sqlite

我收到错误消息: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)

1 个答案:

答案 0 :(得分:0)

你在每次循环迭代时都是buidling并执行语句,但我想你想要的是收集数据首先插入(在tmp中),然后将它连接到语句。因此,列出8列以插入数据,但每次循环迭代仅提供两列。更重要的是,你的代码片段没有显示rowCount来自何处,我猜它没有定义,因此在尝试将其转换为字符串时替换为“无”。

总而言之,这些代码非常难看并且有点混淆;我建议清理它并使用print语句来调试查询的实际内容。