我有一个使用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变量时,虽然数据已写入它,但它已被写为元组,而不是整数。该变量最初包含一个整数。
发生了什么事?我该如何解决? (我假设我需要做一些演员,但我不确定。)
答案 0 :(得分:7)
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