Conversion de la représentation sous forme de chaîne d'un dictionnaire en dictionnaire
Souvent, nous pouvons avoir besoin de convertir une représentation sous forme de chaîne d'un dictionnaire, comme celle donnée ci-dessous, dans un véritable dictionnaire.
s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"
Il est préférable d'éviter d'utiliser eval pour de telles conversions pour des raisons de sécurité. Voici quelques alternatives plus sûres :
Utilisation d'ast.literal_eval :
Le module ast de Python fournit une fonction pratique appelée literal_eval, spécialement conçue pour évaluer en toute sécurité les chaînes d'expression.
import ast dict_from_string = ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")
Cette méthode permet uniquement l'évaluation de littéraux et d'expressions simples, ce qui en fait beaucoup plus sûr que eval.
Avantage de ast.literal_eval :
Contrairement à eval, ast.literal_eval restreint l'évaluation à un ensemble limité de littéraux Python, ce qui évite les risques de sécurité potentiels associé à l'exécution de code arbitraire.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!