Estoy tratando de trabajar con los servicios web HORRIBLE en Commission Junction (CJ). Puedo hacer que el cliente se conecte y reciba información de CJ, pero su base de datos parece incluir un montón de caracteres incorrectos que causan UnicideDecodeError.Cómo solucionar un problema de Unicode cuando uso un servicio web con Python Suds
En este momento estoy haciendo:
from suds.client import Client
wsdlLink = 'https://link-search.api.cj.com/wsdl/version2/linkSearchServiceV2.wsdl'
client = Client(wsdlLink)
result = client.service.searchLinks(developerKey='XXX', websiteId='XXX', promotionType='coupon')
Esto funciona bien hasta que llegué a un registro que tiene algo así como 'CorpNet® 10% de descuento en cualquier servicio' entonces el ® hace que se rompa y consigo
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 758: ordinal not in range(128)" error.
¿Hay alguna manera de codificar el ® en mi extremo para que no se rompa cuando SUDS lea el resultado?
ACTUALIZACIÓN: Para aclarar, el ® proviene de la base de datos CJ y está en su respuesta. ASÍ QUE de alguna manera necesito decodificar los caracteres no ASCII ANTES DE QUE SUDS se ocupe de la respuesta. No estoy seguro de cómo (o si) esto se hace en SUD.
asegúrese de no mezclar objetos 'str' y' unicode', por ejemplo, 'u'a '+' ®'' causará el error. Decodifique la entrada a Unicode lo antes posible. – jfs