python使用sqlaclchemy关于中文报错



使用postgrepsql当中问中有中文时执行select语句报错
代码如下:
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
#中国
engine=create_engine('postgresql+psycopg2://zhangtao:123456@127.0.0.1:5432/mydb',encoding='utf-8',echo=True)
#engine=create_engine('oracle://DBMOPADMIN:DBMOPADMIN@PDTESTDB10',encoding='gbk')
DBsession=sessionmaker(bind=engine)
session=DBsession()
result=session.execute('select * from order_info')
print result
res=result.fetchall()

for r in res:
    print r[0]
   
执行报错误如下:
Traceback (most recent call last):
  File "pg.py", line 17, in <module>
    res=result.fetchall()
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/result.py", line 1125, in fetchall
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/base.py", line 1405, in _handle_dbapi_exception
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/result.py", line 1119, in fetchall
  File "build/bdist.linux-x86_64/egg/sqlalchemy/engine/result.py", line 1070, in _fetchall_impl
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)


解决办法
engine=create_engine('postgresql+psycopg2://zhangtao:123456@127.0.0.1:5432/mydb',encoding='utf-8',echo=True,use_native_unicode=False)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值