我有以下代码,如果没有转义的SQL语句,它可以正常工作 - 它会迭代上一个SELECT查询的完整返回集,打印ID,检测到的语言(来自bingtranslate)和文本。
for row in c:
lang=bingtranslate(row[0])
tweetid = row[1]
print tweetid, lang, row[0]
#c.execute('UPDATE tweet SET iso_language_code=? WHERE id=?',(lang, tweetid))
当我unescape UPDATE调用时,它会循环一次,然后停止。
是什么给出的?没有报告错误。我确信这很简单,但我无法破解它......
答案 0 :(得分:4)
我认为对execute
的调用会改变c
的状态,因此在下一次迭代中循环结束。
答案 1 :(得分:1)
我不懂Python,所以我试着解释一下我在C#中做了什么
你正在使用DataReader的相同对象(python中的c
)执行一个命令,所以你有一个重置,所以奇怪的行为。
在我看来,您不需要复制另一个对象中的行,而只需创建一个新的Command对象(空)并使用它来执行从c
获取参数的查询。
如果我错了,请纠正我。