1.错误说明
近期,在使用sqlalchemy和pandas读取Oracle数据库时(jupyter notebook),发现在获取数据时,报了下面这个错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 143-144: ordinal not in range
2. 解决方法
首先查看了一下SQL语句看看有没有问题,后面发现确实没啥问题。
然后经过多方面尝试,靠以下方法解决了该错误:
import os
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
将上述代码放在文件开头,然后重启jupyter notebook,重新读取数据,发现能够正常读取。
3.后记
cx_oracle与sqlalchemy的接口应该有些问题,在使用时确实不太方便,希望以后能够优化吧~