TypeError: expected bytes-like object, not str

我的梦境 提交于 2021-01-22 06:45:47

问题


I know this question has been asked much times, but please look once in my problem.

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: expected bytes-like object, not str

My Javascript code is:

window['__CANVAS'].toDataURL("image/png");

Output of the above line is:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUg....."

I am receiving same data on flask server as string.

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

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

please help me to solve this question? I am new to python.


回答1:


base64.decodebytes only accepts byte arrays, use base64.b64decode instead it accepts Strings as well



来源:https://stackoverflow.com/questions/53340627/typeerror-expected-bytes-like-object-not-str

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!