fetchone() 将整型变量设置为元组

3 投票
1 回答
13356 浏览
提问于 2025-04-16 20:59

我有一个项目,使用的是Python 2.7和SQLite3数据库。

我想把一个整数变量存储到SQLite3数据库的某一列中,然后再把这个列的值赋给一个变量。

连接没问题,列也存在,并且它的类型是“int”(整数)。

我用以下代码来获取数据:

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

我调用的“AN”变量是在调用这个代码所在的函数时作为参数传入的。

但是,当我查看Trailcrest.fish_score变量时,虽然数据已经写入,但它被写成了一个元组,而不是整数。这个变量最开始是一个整数。

这是怎么回事呢?我该怎么解决?(我猜可能需要进行一些类型转换,但我不太确定。)

1 个回答

8

fetchone() 这个方法仍然会返回一个类似行的对象,你需要从中提取出单独的字段,所以你需要把数据从里面拿出来。

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

撰写回答