簡體   English   中英

使用python 2.7查詢sqlite3數據庫並獲取“sqlite3操作錯誤沒有這樣的表”

[英]using python 2.7 to query sqlite3 database and getting “sqlite3 operational error no such table”

我的簡單測試代碼如下所示。 我已經創建了表,可以使用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

問題是SQL語句。 你必須指定數據庫名稱和表名后...

'''SELECT * FROM db_name.table_name WHERE acctno =? “””

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM