【问题标题】:fetchone() is setting int variable to tuplefetchone() 将 int 变量设置为元组
【发布时间】:2011-09-30 00:49:27
【问题描述】:

我有一个使用 Python 2.7 和 SQLite3 的项目。

我正在尝试在 SQLite3 数据库列中存储一个整数变量,然后可以将变量设置为 SQLite 列的值。

连接正常,列存在,类型为“int”。

我正在使用此代码来提取数据:

    Trailcrest.fish_score = c.execute("SELECT fish_score FROM roster WHERE agentnumber = ?;", (AN,) ).fetchone()

当调用包含此代码的 def 时,我正在调用的“AN”变量作为参数提供。

但是,当我查看 Trailcrest.fish_score 变量时,虽然数据已写入其中,但它已被写入元组,而不是整数。该变量最初包含一个整数。

发生了什么事?我该如何解决? (我假设我需要做一些选角,但我不确定。)

【问题讨论】:

    标签: python variables sqlite integer tuples


    【解决方案1】:

    fetchone() 仍然返回一个类似 Row 的对象,您需要从中解析出单独的字段,因此您需要从中获取数据

    row = c.execute("SELECT fish_score FROM roster WHERE agentnumber = ?;", (AN,) ).fetchone()
    if row is not None:  # or just "if row"
        Trailcrest.fish_score = row[0]
    else:
        pass # didn't get back a row
    

    【讨论】:

    • 有效!谢谢你。作为对使用此代码的任何人的说明,请确保您在“else:”下放了一些东西,而不是注释,否则编译器会生你的气。
    • @Jason:pass 关键字是为此目的而创建的(占位符)。
    猜你喜欢
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多