Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine String-Darstellung eines Wörterbuchs sicher in ein Wörterbuch in Python konvertieren?

Wie kann ich eine String-Darstellung eines Wörterbuchs sicher in ein Wörterbuch in Python konvertieren?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-23 12:11:19487Durchsuche

How Can I Safely Convert a String Representation of a Dictionary to a Dictionary in Python?

Konvertieren von String-Darstellungen von Wörterbüchern in Wörterbücher

In Python ist es oft wünschenswert, String-Darstellungen von Wörterbüchern zu konvertieren, wie beispielsweise die String-Darstellung unten , in die entsprechenden Wörterbücher:

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

Verwendung vermeiden 'eval'

Obwohl es möglich ist, die Funktion „eval“ zum Auswerten des Zeichenfolgenausdrucks zu verwenden, wird von dieser Methode aus Sicherheitsgründen abgeraten. „eval“ führt beliebigen Code aus, was das Risiko von Schwachstellen erhöht.

Sicherere Alternativen

Um String-Wörterbücher sicher zu konvertieren, sollten Sie die Verwendung des integrierten „ast.literal_eval“ in Betracht ziehen ' Funktion. 'ast.literal_eval' wurde speziell für die Auswertung literaler Python-Ausdrücke entwickelt, z. B. die Zeichenfolgendarstellung von Wörterbüchern, Tupeln, Listen usw.

Beispiel

import ast
ast.literal_eval("{'muffin' : 'lolz', 'foo' : 'kitty'}")

Ausgabe:

{'muffin': 'lolz', 'foo': 'kitty'}

Vorteile von 'ast.literal_eval'

  • Sicherheit: Es wertet nur Literalausdrücke aus und verhindert so die Ausführung von Schadcode.
  • Vielseitigkeit: Es kann nicht nur Wörterbücher, sondern auch Listen, Tupel, und andere Python-Literalstrukturen.

Im Vergleich zu „eval“ 'ast.literal_eval' bietet eine sicherere und kontrollierte Möglichkeit, Zeichenfolgendarstellungen von Wörterbüchern oder anderen Literalen in Python-Objekte zu konvertieren.

Das obige ist der detaillierte Inhalt vonWie kann ich eine String-Darstellung eines Wörterbuchs sicher in ein Wörterbuch in Python konvertieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn