2017-10-12 1 views
3

Mon backend python utilise des tableaux d'octets comme celui-ci '\x00k\x8bEg' en tant qu'ID. Pour les afficher correctement dans mes nodejs fin avant que j'utilise les opérations vues ci-dessousConversion d'un tableau d'octets en chaîne et en retour

hex_data = binascii.hexlify('\x00k\x8bEg') 
text_string = hex_data.decode('utf-8') 

cela pourrait revenir quelque chose qui ressemble à ceci: 006b8b4569

Je voudrais revenir cette opération et récupérer mon ID d'origine de l'objet chaîne que je crée, afin de pouvoir sélectionner l'élément souhaité dans un dictionnaire.

J'ai essayé de faire

raw_bytes = binascii.unhexlify('006b8b4569') 

mais le résultat est pas mon ID d'origine.

Comment puis-je effectuer cette traduction avec succès?

Répondre

1

Vous devez inverser les étapes correctement.

>>> bytestream = b'\x00k\x8bEg' 
>>> hex_data = binascii.hexlify(bytestream) 
>>> str_data = hex_data.decode('utf-8') 
>>> str_data 
'006b8b4567' 
>>> binascii.unhexlify(str_data.encode('utf-8')) == bytestream 
True