導航:首頁 > 編程語言 > sqlitepython27

sqlitepython27

發布時間:2025-09-29 03:18:42

1. 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')

閱讀全文

與sqlitepython27相關的資料

熱點內容
什麼是時間復雜度在演算法里 瀏覽:605
華為手機上怎麼添加照片文件夾 瀏覽:743
有excel為什麼還要用python 瀏覽:394
程序員大叔賣3m 瀏覽:59
伺服器頻繁更新怎麼辦 瀏覽:561
sqlitepython27 瀏覽:903
jpg格式轉pdf 瀏覽:708
java倒三角形 瀏覽:251
powerdesigner生成java 瀏覽:762
程序員面試搞那麼多筆試題 瀏覽:535
一分鍾了解什麼是雲伺服器 瀏覽:430
福昕閱讀器pdf轉換成word 瀏覽:468
微信頭像程序員搞笑 瀏覽:87
phpurl獲取擴展名 瀏覽:159
螺桿壓縮機軸封 瀏覽:108
用java畫圖 瀏覽:819
天銳綠盾終端unity加密問題 瀏覽:819
蘋果手機移除桌面文件夾後 瀏覽:569
語言中的編譯原理 瀏覽:969
去阿里程序員家做客 瀏覽:873