如何在列表中的python中查询SQLite 3
当我运行这个时,我没有得到任何回报。但是如果在函数如何在列表中的python中查询SQLite 3,python,sqlite,Python,Sqlite,当我运行这个时,我没有得到任何回报。但是如果在函数read_from_db()I中添加print(read_from_db_list)并将函数粘贴到脚本底部,它将打印列表中的所有对象 我只想能够查询数据库,并检查其中是否有某些关键字 注意:数据库中有7个“windows”匹配项 编辑:在函数中,我尝试了read\u from\u db\u list.append((行))和read\u from\u db\u list.append(行) 以下是我的数据库的外观: 您的代码无法工作,因为您通过执
read_from_db()
I中添加print(read_from_db_list)
并将函数粘贴到脚本底部,它将打印列表中的所有对象
我只想能够查询数据库,并检查其中是否有某些关键字
注意:数据库中有7个“windows”匹配项
编辑:在函数中,我尝试了read\u from\u db\u list.append((行))
和read\u from\u db\u list.append(行)
以下是我的数据库的外观:
您的代码无法工作,因为您通过执行
从\u db\u list.append([row])
创建了一个包含列表的列表。很明显,中的操作符在包含列表的列表中找不到字符串windows
。另外,从c.fetchall()
得到的结果是元组,因此必须首先展开它们才能检索列。替换
read\u from\u db\u list.append([行])
借
它会成功的。请尝试以下代码:
read_from_db_list.append(row[0])
谢谢你的回复,当我运行代码时,我仍然得到一个空的结果。但是你确定吗,你刚刚更新了我提到的那行代码,同时没有更改代码块中的任何其他内容?还请注意我在行[0]
周围删除的方括号。因为这对我来说很好,只要一个改变:/Yep肯定!我尝试重新粘贴我最初发布的代码。我会更新我的帖子,包括你的修改。我还将提供db/表格的屏幕截图,以防我遗漏了一些内容。嗨,博米,谢谢你的回复。我尝试了代码,但没有在屏幕上打印任何内容。在循环中,数据是元组,使用数据[0]而不是最后一行中的数据。有趣的是,这个解决方案正是我发布的,只是增加了几行:/此代码只是将每一行包装在一个列表中,只是为了在read\u from\u db()
之外再次将其展开。当我复制您的确切代码(您现在根据我的建议进行了更改)时,它工作正常。一定还有别的东西破坏了你的代码。@Arno Nymous在你发布代码之前,我已经发布了这段代码。@BhoomiPatel不,我的代码大约提前了30秒,请仔细查看时间戳并计算一下。但这不是我想说的。我想指出的是,非常奇怪的是,OP在我的代码上没有成功,但在你的代码上却没有成功,尽管两者的作用完全相同。
read_from_db_list.append(row[0])
import feedparser
import re
import smtplib
import sqlite3
import time
from datetime import date
db = sqlite3.connect('nvd.db')
c = db.cursor()
def read_from_db():
read_from_db_list = []
c.execute('SELECT product_name FROM product')
for row in c.fetchall():
read_from_db_list.append([row])
return read_from_db_list
for data in read_from_db():
if 'windows' in data[0]:
print('i have windows')