Python和sqlite3 - 没有这样的标签

2024-04-19 15:09:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在通过本教程学习python中的sqlite3http://zetcode.com/db/sqlitepythontutorial/。我开始“插入数据”一章。我运行了这个代码:

import sqlite3 as lite
import sys

con = lite.connect('test.db')

with con:

    cur = con.cursor()    
    cur.execute("CREATE TABLE Cars(Id INT, Name TEXT, Price INT)")
    cur.execute("INSERT INTO Cars VALUES(1,'Audi',52642)")
    cur.execute("INSERT INTO Cars VALUES(2,'Mercedes',57127)")
    cur.execute("INSERT INTO Cars VALUES(3,'Skoda',9000)")
    cur.execute("INSERT INTO Cars VALUES(4,'Volvo',29000)")
    cur.execute("INSERT INTO Cars VALUES(5,'Bentley',350000)")
    cur.execute("INSERT INTO Cars VALUES(6,'Citroen',21000)")
    cur.execute("INSERT INTO Cars VALUES(7,'Hummer',41400)")
    cur.execute("INSERT INTO Cars VALUES(8,'Volkswagen',21600)")

然后我在OS X终端中制作了这个:

^{pr2}$

事情发生了:

Error: no such table: Cars

我不知道为什么。测试数据库剧本的方向是一样的。我一直在寻找这个问题,但我只找到了我不理解的解决方案。在


Tags: importcomexecutedb教程litecarscon
1条回答
网友
1楼 · 发布于 2024-04-19 15:09:38

我最近遇到了这种情况,因为我还在学习python和sqlite。据我所知,在提交更改之前,对数据库所做的修改将保留在内存中。当不再需要访问数据库时,还需要关闭数据库。我不确定with con:方法是否会为您提交甚至关闭数据库。将这些行添加到脚本的末尾。在

con.commit()
con.close()

您可以看到这些命令正在python sqlite3 documentation page上的第二个代码简介中使用。在

相关问题 更多 >