conn = sqlite3.connect('<Absolut path>') 0



我的数据库位于这里: D:\sqlite\db

我的 Python 代码位于此处: D:\app\ZAKPRO\R20191121

代码如下所示:

import sqlite3
import os.path
conn = sqlite3.connect('D:sqlitedbdb_name.db')
c = conn.cursor()
c.execute("INSERT INTO sts_meta (symbol) VALUES( 'tra' ) ")

错误消息是: 操作错误:没有这样的表:sts_meta

  1. 任何人都可以帮助更正我的代码吗?
  2. 我将数据库和代码分开在不同的位置:这很好,是否可取?
  3. 我只找到具有相对路径的示例:使用绝对路径的访问不是python-sqlite社区中的首选访问吗?为什么?

更新 现在我已经重新编码,但仍然面临同样的问题:

filename = "dbname.db"
dir = "D:sqlitedb"
dbpath = pathlib.Path(dir, filename)
sql = ("SELECT * from sts_meta")
conn = sqlite3.connect(dbpath)
c = conn.cursor()
c.execute(sql) 
print(c.fetchall())
conn.commit()   

我收到的这条消息: 操作错误:没有这样的表:sts_meta

如何找出我连接到数据库的小麦?

关于路径库,这是我的数据库路径: D:\sqlite\db\stocktimeseries.db

使用相对路径不是那么好。 好的做法是在 python 中使用操作系统包中的path.join

在任何包含任何字符(如反斜杠(的字符串中,请使用r'your string'.在字符串之前添加 r 将声明以下字符串中包含的特殊字符只是一个字符串,它们没有其他用途。

我不确定这是否是导致此问题的原因。但是,如果表存在并且您在路径方面遇到问题,那么 path.join 可以帮助您。

最新更新