【问题标题】:How to update table sqlite with python in loop如何在循环中使用python更新表sqlite
【发布时间】:2019-09-18 22:23:53
【问题描述】:

我正在尝试计算每一行的众数值并将该值存储在judge =judge 列中,但是它只更新第一条记录并离开循环

ps:Analisador 是我的表,resultado_2 是我的数据库

import sqlite3
import statistics

conn = sqlite3.connect("resultado_2.db")
cursor = conn.cursor()

data = cursor.execute("SELECT Bow, FastText, Glove, Wordvec, Python, juiz, id FROM Analisador")

for x in data:
    list = [x[0],x[1],x[2],x[3],x[4],x[5],x[6]]
    mode = statistics.mode(list)
    try: 
        cursor.execute(f"UPDATE Analisador SET juiz={mode} where id={row[6]}") #row[6] == id
        conn.commit()
    except:
        print("Error")
conn.close()

【问题讨论】:

    标签: python sqlite


    【解决方案1】:

    你必须在 SQL 执行后获取你的记录:

    cursor.execute("SELECT Bow, FastText, Glove, Wordvec, Python, juiz, id FROM Analisador")
    data = cursor.fetchall()
    

    这种类型的 SQL 查询不同于 UPDATE(您也在代码中使用),后者在 SQL 执行后不需要额外的步骤。

    【讨论】:

    • 这对我有用,谢谢兄弟,fetchall() 命令是什么?
    • 您已经创建了一个辅助光标对象,该对象负责检索对象。当您执行fetchall 时,它会返回光标获取的所有记录,例如使用fetchone,您将获得一条/第一条记录。
    猜你喜欢
    • 1970-01-01
    • 2020-06-07
    • 2020-03-14
    • 2016-12-31
    • 2021-05-08
    • 2023-03-05
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    相关资源
    最近更新 更多