J'ai la chaîne suivante qui est un dictionnaire python stringifié: Comment puis-je obtenir le dictionnaire python de la chaîne ci-dessus? p> p>
3 Réponses :
Eh bien, vous pouvez faire
import ast d = ast.literal_eval(some_string)
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}
Le seul sûr em> moyen de le faire est avec ast.literal_eval (c'est sûr car, différemment de l'intégré eval code>, "" "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. "" ". P>