TypeError:预期的类似字节的对象,而不是str [英] TypeError: expected bytes-like object, not str
问题描述
我知道这个问题已经问了很多遍了,但是请在我的问题中再看一次.
I know this question has been asked much times, but please look once in my problem.
我正在将来自角度的 base64
图像数据发送到 python flask ,但是当我在烧瓶服务器(python3)上处理该 base64
数据时,它给了我错误
I am sending base64
image data from angular to python flask but when I am processing that base64
data on flask server(python3) then it is giving me the error
TypeError:预期的类似字节的对象,而不是str
TypeError: expected bytes-like object, not str
我的Javascript代码是:
My Javascript code is:
window['__CANVAS'].toDataURL("image/png");
上一行的输出是:
"data:image/png;base64,iVBORw0KGgoAAAANSUhEUg....."
我在flask服务器上收到的数据与字符串相同.
I am receiving same data on flask server as string.
使用以上64位数据的python服务器上的代码为:
Code on python server that is using above base 64 data is:
def convert_to_image(base64_code):
image_64_decode = base64.decodebytes(base64_code)
image_result = open('baseimage.jpg', 'wb')
image_result.write(image_64_decode)
img_rgb = cv2.imread('baseimage.jpg')
return img_rgb
然后显示以下错误跟踪:
then it is giving the following error trace:
File "/home/shubham/py-projects/DX/Web/app/base64toimage.py", line 10, in convert_to_image
image_64_decode = base64.decodebytes(base64_code)
File "/usr/lib/python3.5/base64.py", line 552, in decodebytes
_input_type_check(s)
File "/usr/lib/python3.5/base64.py", line 521, in _input_type_check
raise TypeError(msg) from err
TypeError: expected bytes-like object, not str
如果我使用此函数转换图像,则python函数上面的工作正常
above python function working fine if I am converting the image using this function
import base64
with open("t.png", "rb") as imageFile:
str = base64.b64encode(imageFile.read())
print str
请帮助我解决这个问题?我是python的新手.
please help me to solve this question? I am new to python.
推荐答案
base64.decodebytes
仅接受字节数组,使用 base64.b64decode
代替,它也接受Strings
base64.decodebytes
only accepts byte arrays, use base64.b64decode
instead it accepts Strings as well
这篇关于TypeError:预期的类似字节的对象,而不是str的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!