问题描述
我正在尝试将 pdf 文件的字节对象从flask api发送到其他flask api。但是每当我对 api 进行 get 调用时,我都会收到 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xac in position 10: invalid start byte。 jsonify 方法是否试图解码我的字节流,以及如何将 pdf 文件的字节对象发送到其他 api。
from flask import Flask,jsonify
import pandas as pd
import matplotlib.pyplot as plt
app = Flask(__name__)
@app.route('/')
def home():
return('home')
@app.route('/convert_bytes')
def byteimage():
data = pd.DataFrame({'Revenue Type': ['AMC USD','LICENSE USD','SAAS USD','PS FEES USD','CU FEES USD'],'Value': [79_592_370,158_602_448,34_856_410,37_566_036,34_183_293]})
fig = plt.figure(figsize=(10,7))
plt.pie(data['Value'],labels=data['Revenue Type'])
plt.savefig('chart.pdf')
with open('chart.pdf','rb') as file:
doc = (file.read())
dic = {'object':doc}
return jsonify(dic)
if __name__ == '__main__':
app.run(debug=True,host='localhost',port=8123)
Traceback (most recent call last):
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\app.py",line 2464,in __call__
return self.wsgi_app(environ,start_response)
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\app.py",line 2450,in wsgi_app
response = self.handle_exception(e)
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\app.py",line 1867,in handle_exception
reraise(exc_type,exc_value,tb)
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\_compat.py",line 39,in reraise
raise value
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\app.py",line 2447,in wsgi_app
response = self.full_dispatch_request()
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\app.py",line 1952,in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\app.py",line 1821,in handle_user_exception
reraise(exc_type,line 1950,in full_dispatch_request
rv = self.dispatch_request()
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\app.py",line 1936,in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\1777304\Downloads\How+Python+Imports+Modules\How Python Imports Modules\example3b\flask_app_pdf\main.py",line 24,in byteimage
return jsonify(dic)
File "C:\Users\1777304\PYTHON\lib\site-packages\flask\json\__init__.py",line 370,in jsonify
dumps(data,indent=indent,separators=separators) + "\n",File "C:\Users\1777304\PYTHON\lib\site-packages\flask\json\__init__.py",line 211,in dumps
rv = _json.dumps(obj,**kwargs)
File "C:\Users\1777304\PYTHON\lib\site-packages\simplejson\__init__.py",line 412,in dumps
**kw).encode(obj)
File "C:\Users\1777304\PYTHON\lib\site-packages\simplejson\encoder.py",line 298,in encode
chunks = list(chunks)
File "C:\Users\1777304\PYTHON\lib\site-packages\simplejson\encoder.py",line 696,in _iterencode
for chunk in _iterencode_dict(o,_current_indent_level):
File "C:\Users\1777304\PYTHON\lib\site-packages\simplejson\encoder.py",line 620,in _iterencode_dict
yield _encoder(value)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xac in position 10: invalid start byte
127.0.0.1 - - [10/Jun/2021 23:52:36] "?[37mGET /convert_bytes?__debugger__=yes&cmd=resource&f=style.css HTTP/1.1?[0m" 200 -
127.0.0.1 - - [10/Jun/2021 23:52:36] "?[37mGET /convert_bytes?__debugger__=yes&cmd=resource&f=jquery.js HTTP/1.1?[0m" 200 -
127.0.0.1 - - [10/Jun/2021 23:52:37] "?[37mGET /convert_bytes?__debugger__=yes&cmd=resource&f=debugger.js HTTP/1.1?[0m" 200 -
127.0.0.1 - - [10/Jun/2021 23:52:37] "?[37mGET /convert_bytes?__debugger__=yes&cmd=resource&f=ubuntu.ttf HTTP/1.1?[0m" 200 -
127.0.0.1 - - [10/Jun/2021 23:52:37] "?[37mGET /convert_bytes?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1?[0m" 200 -
127.0.0.1 - - [10/Jun/2021 23:52:37] "?[37mGET /convert_bytes?__debugger__=yes&cmd=resource&f=console.png HTTP/1.1?[0m" 200 -
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)