Bonjour,
Je récupère (en SNMP) cette valeur de type str:
valeur = '\\x02\\x06\\x0b\\x01$\\x00'
C'est en fait un code hexadécimal d'une date, que je cherche à transformer en:
resultat = '07:d8:02:06:0b:01:24:00'
J'ai trouvé sur un forum US cette commande:
print reduce(lambda x,y: x+':'+y, map(lambda x: '%2.2x' % x, map(ord, valeur)))
mais si je lui passe valeur tel quel, voilà ce que ça me retourne:
'5c:78:30:37:5c:78:64:38:5c:78:30:32:5c:78:30:36:5c:78:30:62:5c:78:30:31:24:5c:78:30:30'
Je modifie donc à la main (pas dans un script) valeur, pour que ça donne ça:
valeur2 = '\x07\xd8\x02\x06\x0b\x01$\x00'
Et quand je fait un :
print reduce(lambda x,y: x+':'+y, map(lambda x: '%2.2x' % x, map(ord, valeur2)))
hop ça marche :
07:d8:02:06:0b:01:24:00
Le problème est que je n'arrive pas à convertir ça
'\\x02\\x06\\x0b\\x01$\\x00'
en ça
'\x07\xd8\x02\x06\x0b\x01$\x00'
dans un script.
ça parait simple mais en fait non! J'ai essayé de faire replace("\\", "\"), d'utiliser le caractère "r" pour raw string, etc... mais je n'y arrive pas j'ai toujours des erreurs.
Quelqu'un a une idée de comment faire ce petit changement de format?
Merci!!
Dazdh
Partager