[英]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.