ОШИБКА «принуждение к Unicode: требуется строка или буфер, cStringIO.Strin gO найдено», когда я пытаюсь вставить в excel изображение с URL-адреса в python - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь вставить изображение в excel с URL-адреса, но получаю эту ошибку:

coercing to Unicode: need string or buffer, cStringIO.StringO found

Вот мой код:

import cStringIO
from PIL import Image
import urllib

wb = pyExcelerator.Workbook()
ws = wb.add_sheet('sheet 1')
url= 'this url contains the url of an image'

f = urllib.urlopen(url)
buf = f.read()
fileIO = cStringIO.StringIO(buf)
img = Image.open(fileIO).convert("RGB")
img.thumbnail((71, 100), Image.ANTIALIAS)
img_bmp = cStringIO.StringIO()
img.save(img_bmp, 'BMP')
img_bmp.seek(0)
ws.insert_bitmap(img_bmp, 0, 1)

1 Ответ

0 голосов
/ 16 июня 2020

Пришлось сохранить изображение и преобразовать в BMP.

import cStringIO
from PIL import Image
import urllib

wb = pyExcelerator.Workbook()
ws = wb.add_sheet('sheet 1')
url= 'this url contains the url of an image'
dir= 'It is a directory location'

f = urllib.urlopen(url)
buf = f.read()
fileIO = cStringIO.StringIO(buf)
img = Image.open(fileIO).convert("RGB")
img.thumbnail((71, 100), Image.ANTIALIAS)
img_bmp = cStringIO.StringIO()

#this is the one that converts the image to bmp
img.save(img_bmp, 'BMP') 

with open('{}/prova_img.bmp'.format(dir), 'w') as file_handle:
    file_handle.write(img_bmp.getvalue())

ws.insert_bitmap('{}/the_bitmap_image.bmp'.format(dir), 0, 1)
...