2016-06-09 32 views
3

我的問題: 爲什麼我不能從sqlalchemy數據庫檢索非ASCII字符到Python?SQLAlchemy和python - 從數據庫檢索非ASCII字符

詳細信息: 我在我的sqlalchemy數據庫(例如Umlaut)中有一個非ascii字符的條目。 當我嘗試檢索該條目使用:

q=self.session.query(Table_Name).filter(Table_Name.id=='some id') 
q.all() 

我收到以下錯誤:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 

我解決它通過條目解碼成UTF-8 之前插入入門到D B。

但我想知道 - 爲什麼是否出現此錯誤? 有沒有一個選項來獲取已編碼爲unicode的條目,而不是將bytechar \ ascii編碼爲python?

+0

是您的DB UTF-8,你有# - * - 編碼:UTF-8 - * - 在python嗎? –

回答

1

docs,您應該指定連接字符串中的編碼:

e = create_engine("mysql+pymysql://scott:[email protected]/test?charset=utf8")