UnicodeDecodeError: 'utf8' codec can't decode byte 0xbf in position 36: invalid start byte

这里只记录一种原因

1. 报错代码

from sqlalchemy import create_engine
engine = create_engine("oracle://xxx:xxx@xxx:xxx/?service_name=xxx", echo=True)
import pandas as pd

source_bugs = "select * from xxxx"
df_source_bugs = pd.read_sql_query(source_bugs, engine)

2. Traceback 

[2019-08-22 13:33:28,289] ERROR in app: Exception on /bug_management/list [GET]
Traceback (most recent call last):
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\flask\app.py", line 1982, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\flask\app.py", line 1614, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\flask\app.py", line 1517, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\flask\app.py", line 1612, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\flask\app.py", line 1598, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\dashboard\bugmanage\views.py", line 48, in bug_manage_table
    df_source_bugs = pd.read_sql_query(source_bugs, engine)
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\pandas\io\sql.py", line 314, in read_sql_query
    parse_dates=parse_dates, chunksize=chunksize)
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\pandas\io\sql.py", line 1072, in read_query
    data = result.fetchall()
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\sqlalchemy\engine\result.py", line 1216, in fetchall
    e, None, None, self.cursor, self.context
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1468, in _handle_dbapi_exception
    util.reraise(*exc_info)
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\sqlalchemy\engine\result.py", line 1211, in fetchall
    l = self.process_rows(self._fetchall_impl())
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\sqlalchemy\engine\result.py", line 1161, in _fetchall_impl
    return self.cursor.fetchall()
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\site-packages\sqlalchemy\processors.py", line 74, in process
    return decoder(value, errors)[0]
  File "C:\Users\jalchu\Documents\cloudtools-stap\provision\venv\lib\encodings\utf_8.py", line 16, in decode
    return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError: 'utf8' codec can't decode byte 0xbf in position 36: invalid start byte

3. 原因

SQLAlchemy版本原因(根本原因是python版本原因,因为python2和python3的编码有所不同,所以一些三方框架对于版本升级后的兼容性未做处理)

参考:

https://docs.sqlalchemy.org/en/13/changelog/migration_13.html

https://docs.sqlalchemy.org/en/13/changelog/migration_13.html#change-4393-convertunicode

4. 解决

将SQLAlchemy版本由1.3.7降为1.2.6

pip install SQLAlchemy==1.2.6

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jalen备忘录

谢谢~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值