Disons que j'ai un dict:
{'Name': 'John', 'age': '43'}
quel serait le meilleur moyen de le convertir en:
new_d = dict()
old_d = {b'Name': b'John', b'age': b'43'}
for item in old_d:
print(item, old_d[item])
new_d[item.decode('ascii')] = old_d[item].decode('ascii')
print(new_d)
(En considérant que il peut y avoir n'importe quel nombre de paires clé: valeur)
Voici ce que j'ai en ce moment:
{'Name': 'John', 'age': '43'}
Résultat:
{b'Name': b'John', b'age': b'43'}
3 Réponses :
d = { b'Name': b'John', b'age': b'43' }
d = { x.decode('ascii'): d.get(x).decode('ascii') for x in d.keys() }
Essayez ceci:
x = {b'Name': b'John', b'age': b'43'}
y = {}
for key, value in x.items():
y[key.decode("utf-8")] = value.decode("utf-8")
y
> {'Name': 'John', 'age': '43'}
Je ne peux pas tester cela pour le moment, mais vous devriez pouvoir tout décoder dans un nouveau dictionnaire. Vous devez spécifier l'encodage - je pense que UTF-8 est un bon défaut.
enc = 'utf-8'
s = {k.decode(enc), v.decode(enc) for k, v in d.items()}
Joli one-liner. Bien que vous ayez mal orthographié la virgule: s = {k.decode (enc): v.decode (enc) pour k, v dans d.items ()}