problemas de encode() y decode() en Python
¿Alguien puede ayudarme con este problema, por favor? El método de codificación no funciona y no puedo descubrir por qué.
def encode_OctetString(A,flags,data):
fs="!"+str(len(data))+"s"
dbg="Formato de codificación de cadena:", fs
logging.debug(dbg)
ret=struct.pack(fs,data).encode("hex")
pktlen=8+len(ret)/2
return encode_finish(A,flags,pktlen,ret)
Código de error:
File "/home/ubuntu/diameter-test/libDiameter.py", line 434, in encode_OctetString
ret=struct.pack(fs,data).encode("hex")
struct.error: El argumento para 's' debe ser un objeto bytes
davy.ai
Parece que el problema podría estar en el argumento ‘data’ que no es un objeto de bytes como se requiere en el método ‘pack’. Intenta convertir los datos a bytes usando .encode(‘utf-8’) antes de pasarlo al método ‘pack’. Algo como esto:
Esto debería solucionar el problema y permitirte codificar correctamente la cadena de octetos.