【问题标题】:If in cursor.fetchall there is a certain element, then print如果 cursor.fetchall 中有某个元素,则打印
【发布时间】:2022-01-25 17:37:27
【问题描述】:

通过cursor.fetchall()[0],我从数据库中得到一行,如果证券交易所的最后一个趋势(已经输入数据库)是正数还是负数,我会在其中查找。通过OR 只取一个:或仅negative 或仅positive,取决于最后一个是什么(因此按时间顺序排列第一个)。仅通过组合框选择正或负。到目前为止一切正常。

cursor.execute("SELECT american_company, asian_company FROM financial_values WHERE positive =? OR negative=? LIMIT 1", [combo_value_positive, combo_value_negative])
Last_value = cursor.fetchall()[0]

使用条件 (if),我想确保如果最后一个值为正,则打印一些内容。相反,如果最后一个值为负,则打印另一个。所以我想根据 Last Value = Cursor.fetchall()[0] 中的正面或负面寻求公司名称。通过 Last_Value 精确搜索正负。

if Last_value == positive: #HERE, i want to use positive that of the database of Last value 
print("value positive")

else: #negative
print("value negative")

我写了==,但显然它并不好。我收到错误,因为没有使用此名称定义的项目,但我想直接使用Last_value = cursor.fetchall()[0]的数据库

NameError: name 'positive' is not defined

我该怎么办?

更新

正如您在 Last_value 中看到的那样,我使用了 OR,因此是正数或负数。根据后者是正面的还是负面的,只采用最新的(我的意思是最近的)american_company 和 asian_company。使用 if Last_value,我希望能够选择“如果最后一个 american_company 和 asian_company 是由于正面或由于负面而被收集的(只有负面或正面之一)

【问题讨论】:

  • last_value 是提取的整行。您具体要查找哪一列?
  • @JohnGordon 是的。我正在寻找的列称为正(然后是另一列负)
  • 然后将这些列添加到 SELECT 语句中,这样它们就会出现在输出中。有什么困难?
  • @JohnGordon 因为选择的选择(正面或负面)会不时改变和变化。所以我想让它根据ifs自动选择,在cursor.fetchall中搜索“肯定”(或否定)。如果正数内有字段,或者没有,输出会改变
  • 我还是不明白这个问题。您的 SELECT 语句不包括正/负列,因此这些列不会出现在输出中。

标签: python sql python-3.x sqlite


【解决方案1】:

Python 只能使用您从数据库加载的数据。如果要使用正负列的值,则必须将它们添加到您的选择查询中。

cursor.execute("""
  SELECT american_company, asian_company, positive, negative
  FROM financial_values
  WHERE positive =? OR negative=?
  LIMIT 1
""", [combo_value_positive, combo_value_negative])

# Use fetchone() to get just one row.
row = cursor.fetchone()

fetchone 返回结果的tuple。正负分别是选择列表中的第 3 项和第 4 项。元组从 0 开始,所以 row[2]positive 的值,row[3]negative 的值。

if row[2]
    print("its positive")
if row[3]
    print("it's negative")

【讨论】:

  • 我不是在找这个。也许我解释错了。正如您在 Last_value 中看到的那样,我使用了 OR,因此是正数或负数。根据后者是积极的还是消极的,只采用最新的(我的意思是最近的)american_company 和 asian_company。使用 if Last_value,我希望能够选择“如果最后一个 american_company 和 asian_company 是由于正面或负面(只有负面或正面之一)被捡起的。按照你的建议写 if 行 [2],我得到完全不同的事情。我希望你能帮助我
  • @Bobby "只有最新的(我的意思是最近的)american_company 和 asian_company 被收录"。不,你只是得到一个匹配的行。如果你想要最新的,你必须order by 一些东西。至于其他的,对不起,我不明白。编辑您的问题以包含一些示例数据和您想要的结果的清晰示例。
猜你喜欢
  • 1970-01-01
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-17
  • 1970-01-01
相关资源
最近更新 更多