6
votes

Comment convertissez-vous un dictionnaire à cordes en un dictionnaire Python?

J'ai la chaîne suivante qui est un dictionnaire python stringifié: xxx

Comment puis-je obtenir le dictionnaire python de la chaîne ci-dessus?


0 commentaires

3 Réponses :


10
votes

Eh bien, vous pouvez faire

import ast
d = ast.literal_eval(some_string)


0 commentaires

12
votes

Utilisez ast.literal_eval code> :

Évaluez en toute sécurité un nœud d'expression ou une chaîne contenant une expression python. La chaîne ou le nœud fourni peut ne consister que les structures littérales python suivantes: cordes, chiffres, tuples, listes, dicts, booléens et aucun. P>

Ceci peut être utilisé pour évaluer en toute sécurité les chaînes contenant des expressions python provenant de sources non approuvées sans la nécessité d'analyser les valeurs soi-même. P> blockQuote>

Exemple: P>

>>> some_string = '{123: False, 456: True, 789: False}'
>>> import ast
>>> ast.literal_eval(some_string)
{456: True, 123: False, 789: False}


0 commentaires

3
votes

Le seul sûr moyen de le faire est avec ast.literal_eval (c'est sûr car, différemment de l'intégré eval , "" "La chaîne ou le nœud fourni peut uniquement être consistant que les structures littérales python suivantes: cordes , chiffres, tuples, listes, dicts, booléens et aucun. "" ".


0 commentaires