此代码只在DB中写入一行
我发现这个代码没有错误。在
但这为什么不插入第一行呢?在
def transremovechars():
cur.execute('drop table transforms')
char_cfg = config.get('Transform_Variables', 'Chars_to_be_removed') #Reads all the special chars to be removed from specialchars.txt#
cur.execute('select * from originallist')
for row in cur: #Applies transformation to remove chars for each row in a loop#
company = row[0]
for specialchars in char_cfg:
company = company.replace(specialchars, '')
cur.execute('Insert into transforms (Transresult1) values (\'' + company + '\')')
con.commit()
在使用表之前,您似乎要删除表
transforms
。你确定要吗?或者你忘了展示再次创建它的代码吗?在如果您只使用第一列,您的
select *
可能会过度使用。也许您想在SELECT
中命名该字段。在此外,您应该将插入行替换为
不过,迭代光标应该没问题。也许你可以在你的
print
循环中插入一些print
语句。。。在大意是您应该
cur.fetchall()
并对其进行迭代的注释可以正常工作。代码中真正的错误是,一旦使用cur
插入,它就是一个“新事物”,原始生成器被重置(cur有next()
)方法。在您可以使用cur而不必执行fetchall操作,只需创建第二个游标
ins_cur = con.curson()
并同时使用这两个游标。更多的高级效果可以通过迭代或使用在一个连接上打开的多个游标来实现。在是的,请为您的dbapi模块使用正确的variable binding。在
您忘了
cur.fetchall()
:相关问题 更多 >
编程相关推荐