python - 使用 python 2.7 查询 sqlite3 数据库并获取 "sqlite3 operational error no such table"

标签 python sqlite

下面列出了我的简单测试代码。我已经创建了该表并且可以使用 Firefox 上的 SQLite Manager 加载项查询它,所以我知道该表和数据存在。当我在 python 中运行查询(并使用 python shell)时,我得到了没有这样的表错误

def TroyTest(self, acctno):

    conn = sqlite3.connect('TroyData.db')
    curs = conn.cursor()

    v1 = curs.execute('''
    SELECT acctvalue 
    FROM balancedata
    WHERE acctno = ? ''', acctno)
    print v1  
    conn.close()

最佳答案

当您向 SQLite 传递一个不存在的路径时,它会很乐意为您打开一个 数据库,而不是告诉您该文件之前不存在。当您这样做时,它会是空的,您会收到“没有这样的表”错误。

您正在使用数据库的相对路径,这意味着它将尝试在当前 目录中打开数据库,而这可能不是您认为的位置..

补救措施是改用绝对路径:

conn = sqlite3.connect('/full/path/to/TroyData.db')

您需要遍历光标才能看到结果:

curs.execute('''
    SELECT acctvalue 
    FROM balancedata
    WHERE acctno = ? ''', acctno)

for row in curs:
    print row[0]

或调用fetchone():

print curs.fetchone()  # prints whole row tuple

关于python - 使用 python 2.7 查询 sqlite3 数据库并获取 "sqlite3 operational error no such table",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14903497/

相关文章:

python - 将Python代码转换为Linux可执行文件

python - 防止从 Python 调用 C 类型

python - 开始编写非上下文无关的编程语言的好资源是什么?

android - bash 脚本中的 adb 命令(将 sqlite 从 android 复制到 mac)

python - 尝试解析列表中的 json 字典以创建 sqlite 数据库

iphone - 数据库安装路径无效。 - 钛合金加速器

python - 删除错误字符 "\xC2"python字符串

python - 如何在Python中实现Matlab bwmorph(bw ,'remove' )

java - 如何从列表转换为数组?安卓

SQLite - 按字母数字排序同时忽略特殊字符和 "The"