"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment convertir en toute sécurité les représentations de chaînes de dictionnaires en dictionnaires dans Python?

Comment convertir en toute sécurité les représentations de chaînes de dictionnaires en dictionnaires dans Python?

Publié le 2025-03-04
Parcourir:134

How to Safely Convert String Representations of Dictionaries to Dictionaries in Python?

Conversation de représentations de chaîne des dictionnaires en dictionnaires

Considérez la tâche de convertir une représentation de chaîne d'un dictionnaire en dictionnaire. Par exemple:

s = "{'muffin' : 'lolz', 'foo' : 'kitty'}"

on peut être tenté d'utiliser la fonction EVAL à cet effet, mais il est préférable d'éviter EVAL en raison de ses risques de sécurité potentiels. bibliothèque:

Importer ast dictionary = ast.literal_eval (s)

import ast

dictionary = ast.literal_eval(s)

Cette méthode est plus sûre que d'utiliser l'évaluation, car il empêche l'exécution d'un code arbitraire qui pourrait potentiellement compromettre votre système. Par exemple:

# Exemple dangereux: eval ("shutil.rmtree ('mongo')") # Exemple sûr: AST.Literal_eval ("shutil.rmtree ('mongo')")

# Dangerous example:
eval("shutil.rmtree('mongo')")

# Safe example:
ast.literal_eval("shutil.rmtree('mongo')")
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3