python - 使用 Python 更新 SQLite 数据库中的行

标签 python database sqlite

我有以下问题: 我想逐行更新现有的 SQLite 数据库。现在发生的情况是,迭代器使用 dbdata 最后分配的值更新所有现有行。

我不想这样。 我想使用 dbdata 的第一个指定值更新 row 1。然后迭代器应再次“向上”,获取下一个值,并且更新应继续到下一行。 显然逻辑有问题,但我无法理解它。

现在发生的情况是,行现在已更新,这让我得到了所有行的 dbdata 的最后分配值。我只想每次迭代更新一行。 我如何告诉Python总是“向下一行”?有人可以给个提示吗?我不是在这里寻找完整的解决方案。我当前的代码如下:

for row in dbconnector:
    print (row)
    dbdata = langid.classify("{}".format(row))
    print (dbdata)
    connector.execute('''update SOMEDB set test1=? , test2=?''',(dbdata[-2], dbdata[-1]))

我正在使用 SQLite 数据库和 Python 3.3。

最佳答案

将所有数据设置为最后一个 dbdata 的原因是因为您的更新不限于单行,因此在每次迭代中,所有行都设置为您刚刚处理的任何 dbdata。要限制更新,请使用 where 子句,以便唯一受影响的行是您想要的行。

关于python - 使用 Python 更新 SQLite 数据库中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25220985/

相关文章:

python - 如何在python中的字符串中搜索最后一次出现的正则表达式?

python - 如何在 tkinter 中单击按钮后更新 Canvas 上的文本

重复的 MySQL - 插入但不更新

Powershell - 将 SQLite 表导出到 csv

python - django多进程问题

django - 在 10 个并发 uwsgi worker 上锁定 Django DB - 怎么做?

python - python 中是否有像 C++11 中那样的多重集的 equal_range?

python - 如何在 Python 中检查操作系统是否是 Vista?

database - 将序列化数组转换为 PSQL 数组,错误

c# - 如何在不使用模拟的情况下使用数据库对项目进行单元测试?