在检查输入是否存在于数据库中(实际上存在)时获取False值

时间:2019-01-08 06:53:29

标签: python sqlite

我不太确定如何处理此问题,但是在将输入与数据库中存在的数据进行比较时,我得到了False值。这是我当前的代码:

<div class="container">
  <div class="box1"> header </div>
  <div id="story" class="box2"> story </div>
  <div class="box3"> footer </div>
  <div class="link">
    <a href="#story">
         Click Me!
       </a>
  </div>
</div>

1 个答案:

答案 0 :(得分:1)

问题是fetchall()为每一行返回一个元组(请注意,该链接适用于MySQL,但其解释要比官方文档更好):

  

该方法获取查询结果集的所有(或所有剩余)行,并返回一个元组列表。如果没有更多行可用,它将返回一个空列表。

这意味着result如下所示:

[(field1, field2, f3...), (field1, field2, f3...), ...]

现在,in将检查是否有任何(field1, field2, f3...)等于Permanent,这显然总是错误的。

根据to this question

print(len([item for item in result if in_ in item]) > 0)

或带有@shmee的建议:

print(any(item for item in result if in_ in item))

如果True出现在in_中的任何位置,则应打印result