Ошибка ясно указывает на то, что для какого-либо параметра требуется строковое значение, но передается что-то еще.
Перед публикацией вопроса вы должны попытаться отладить его самостоятельно.Несколько вещей, которые вы можете попробовать:
- Не допускайте слишком широких исключений.При правильной обработке исключений вы можете легко отследить:
/usr/lib/python3.6/http/client.py in _send_request(self, method, url, body, headers, encode_chunked)
1278
1279 for hdr, value in headers.items():
-> 1280 self.putheader(hdr, value)
1281 if isinstance(body, str):
1282 # RFC 2616 Section 3.7.1 says that text default has a
/usr/lib/python3.6/http/client.py in putheader(self, header, *values)
1214 values[i] = str(one_value).encode('ascii')
1215
-> 1216 if _is_illegal_header_value(values[i]):
1217 raise ValueError('Invalid header value %r' % (values[i],))
1218
TypeError: expected string or bytes-like object
Теперь, глядя на трассировку, кажется, что значение заголовка неверно.
Добавление правильных операторов журнала.Регистрируя значение заголовка, оно выглядит как dict, а не строка.
В разделе печатных изображений измените заголовки следующим образом:
req = ur.Request(img, headers=header)