『壹』 python3讀取word文件到sqlite
大象關進冰箱需要兩步走:
首先我這有個文檔,裡麵包含了駕照考試科四試題。
『貳』 Python2.7.5下從SQLite3中查詢中文,請求幫忙!
這個你確定沒有報別的錯誤么, cu.execute("select * from table where username=%s"%name)#找某個表中的姓名為XX的用戶 %s兩邊要單引號的吧
『叄』 最近學python和bottle框架,用sqlite3,網頁中文顯示亂碼,咋辦捏
這個不是亂碼,是unicode過的中文,你直接顯示就是看到的中文了
『肆』 如何在python程序中查看sqlite3某資料庫中的表名
sqlite3資料庫里表的信息存儲在了一個名為sqlite_master的表中
因此可以通過這條語句來查看資料庫中所有表的名稱
SELECT name FROM sqlite_master WHERE type='table';
下面是Python的用法
con=sqlite3.connect('database.db')
cursor=con.cursor()
cursor.execute("SELECTnameFROMsqlite_masterWHEREtype='table';")
print(cursor.fetchall())
『伍』 Python和SQLite問題,怎麼解決
python編碼如果把中文數據存儲至sqlite資料庫某一欄位中,再通過查詢語句取出並進行相關的字元串操作時,經常會出現錯誤提示,類似於UnicodeDecodeError,提示某一類型編碼不能轉換。
出現這個問題的原因是因為python默認使用unicode處理sqlite3的TEXT類型(varchar類型也是如此,因為在sqlite中varchar其實就是TEXT)。python把中文存入資料庫時使用了類似於GBK這樣的編碼,取出時會嘗試把TEXT類型數據轉換成unicode,從而出現錯誤。
由此導致的另一個不容易發現的錯誤是存儲在資料庫中的中文進行了base64之類的編碼,在python中取出時不會存在錯誤,但是再進行base64解碼,並與sqlite3中取出的其它text欄位進行字元串拼接等處理,就出現編碼轉換錯誤,很難發現問題原因,可以把其它text欄位進行如'aaa'.encode('gbk')編碼成GBK碼解決,但不提倡這種方法,更好方法如下:
解決方法是python連接sqlite資料庫後進行如下設置:
conn = sqlite3.connection(「……」)
conn.text_factory = str
另外為了python代碼中硬編碼的中文字元串不出現問題,除了在源碼開始添加
# -*- coding:utf-8 -*-
還要設置python源碼的編碼為utf-8
import sys
reload(sys)
sys.setdefaultencode('utf8')