You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQLite3如何将SQL查询返回的数据赋值给变量?

解决SQLite查询结果赋值给变量的问题

你当前的问题是fetchall()返回的是包含元组的列表(比如[(0.3786567, 'EXMO')]),而你直接用未定义的last_price和exchange变量赋值,自然取不到正确数据。以下是具体的解决方法:

方法1:用fetchone()直接获取单行结果

因为你的查询用了MAX(last),结果只会有一行,用fetchone()比fetchall()更合适,它直接返回单个元组(而非列表):

connect_SQL.execute(""" SELECT MAX(last), exchange from MY_TABLE WHERE base="XRP" and target="EUR" """)
sell_row = connect_SQL.fetchone()  # 返回结果:(0.3786567, 'EXMO')

方法2:拆分元组赋值给变量

拿到元组后,可以直接解包赋值给两个变量:

# 确保查询有结果的情况下直接解包
if sell_row:
    Sell_price, Sell_exchange = sell_row
else:
    # 处理查询不到数据的情况(可选)
    Sell_price = 0.0
    Sell_exchange = "无数据"

# 现在打印就能得到正确结果
print("A: ", Sell_price, " B: ", Sell_exchange)

如果你坚持用fetchall()

如果一定要保留fetchall(),需要先从列表中取出第一个元组,再拆分:

Sell_on = connect_SQL.fetchall()
if Sell_on:  # 检查列表不为空
    Sell_price, Sell_exchange = Sell_on[0]  # 取列表的第一个元素(元组)

注意点

  • 不要直接使用last_price或exchange这类未定义的变量,必须从查询返回的结果中提取数据。
  • 建议加上空结果判断,避免查询不到数据时引发IndexError或TypeError。

内容的提问来源于stack exchange,提问作者Terminator2012b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:11:13