我想使用SQLite3
存储来自网页的CSS ID的 value 。为此,我做了一个 function ,可以在其中存储这些值。为了获取每个值,我在另一个文件的变量上放置了一个for循环。但这给了我一个错误:
Traceback (most recent call last):
File "c:/Users/pc 21/Desktop/Crawl_jar/D_scraper.py", line 35, in <module>
class_Name = "." + str(i)
NameError: name 'i' is not defined
MAIN.py:(这是一段代码)
import sqlite3
conn = sqlite3.connect(r'C:\Users\pc 21\Desktop\Crawl_jar\test.db')
def on_clicked(name):
on_clicked.xcv = name
print(on_clicked.xcv)
conn.execute(f"""INSERT INTO Classes (id) VALUES ("{name}");""")
其他文件:
import sqlite3
conn = sqlite3.connect(r'C:\Users\pc 21\Desktop\Crawl_jar\test.db')
cur = conn.cursor()
cur.execute("SELECT id FROM classes")
rows = cur.fetchall()
for i in rows:
print(i)
class_Name = "." + str(i)
我认为数据库为空。我做错了什么?因为它没有打印任何东西。
是的,我自己得到了答案。可以通过在结尾放置
cur.commit()
来解决。它将与我上面发布的代码相同。
答案 0 :(得分:2)
您应在循环内使用i
。并使用i[0]
来获取ID值,因为i
是一个列表。
for i in rows:
print(i)
class_Name = "." + str(i[0])
# use class_Name in code here