我创建了一个sql db,其中包含以下内容:
Database: [URL_PARSED]
File name: E:\URL Parser\URL_PARSED.db
File size: 2048 bytes
Page size: 1024
Encoding: UTF-8
Auto vacuum: 0
Tables: 1
Views: 0
------------------------------------------------------------
Table [PARSED_URL]
Fields: 7
[Time_Extracted]: TEXT
[scheme]: TEXT
[location]: TEXT
[Url_path]: TEXT
[object_parameters]: TEXT
[query]:
[search]: TEXT
Foreign Keys: 0
Indexes: 0
Triggers: 0
Unique constraints: 0
Check constraints: 0
------------------------------------------------------------
我正在尝试使用以下代码检索谷歌搜索结果:
connect_to_db = sqlite3.connect('URL_PARSED.db')
cursor_for_db =connect_to_db.cursor()
cursor_for_db.execute("SELECT * FROM URL_PARSED WHERE search ="q=") :
results = cursor_for_db.fetchone()
print (results)
有人可以帮助我,因为这不起作用。
答案 0 :(得分:0)
执行后的分号应该在这里。引号没有被正确转义,应该是:
cursor_for_db.execute("SELECT * FROM URL_PARSED WHERE search ='q='")
results = cursor_for_db.fetchone()
print (results)
编辑,因为OP说他想要以q =开头的项目,查询应该是
SELECT * FROM URL_PARSED WHERE SUBSTR(search, 1, 2) = 'q='
答案 1 :(得分:0)
如果您要查找search
开始的所有行1>,请使用q=
:
cursor_for_db.execute("SELECT * FROM URL_PARSED WHERE search LIKE 'q=%'")
%
通配符使这成为一个启动搜索;任何匹配模式q=
后跟其他任何内容的文本都将匹配。
这将构造一个有效的SQL查询作为Python字符串,因此开始"
和结束"
之间的所有内容都是SELECT语句。
如果需要对查询进行参数化,请使用SQL参数占位符并传入一系列参数值;这里你只有一个,但你需要附加%
通配符作为参数值的一部分:
query = 'q=%'
cursor_for_db.execute("SELECT * FROM URL_PARSED WHERE search LIKE ?", (query,))
然后会为您正确引用query
值。
答案 2 :(得分:0)
这就是你要找的东西:
cursor_for_db.execute("SELECT * FROM URL_PARSED WHERE search ='q='")
results = cursor_for_db.fetchone()
print (results)
但你应该更好地使用:
cursor_for_db.execute("SELECT * FROM URL_PARSED WHERE search = ?", ("q=",))