Ich habe eine große Datei von Text, der eine Liste von Wörterbüchern ist, wie solesen Textdatei der Wörterbücher in Python als Liste
[{'a':'1', 'b':'2'},{'a':'3','b':'4'}]
Wie kann ich dies als eine Liste der Wörterbücher in Python lesen?
Ich habe eine große Datei von Text, der eine Liste von Wörterbüchern ist, wie solesen Textdatei der Wörterbücher in Python als Liste
[{'a':'1', 'b':'2'},{'a':'3','b':'4'}]
Wie kann ich dies als eine Liste der Wörterbücher in Python lesen?
können Sie verwenden:
with open('filename') as f:
d = eval(f.read())
Beachten Sie, dass eval
sollte mit Vorsicht verwendet werden, wie es in den Kommentaren erwähnt, weil Sie schädlichen Code ausführen kann am Ende, wenn der Eingang nicht 100% in Ihrer Steuerung.
Sie können auch ast.literal_eval
verwenden.
import ast
ast.literal_eval("[{'a':'1', 'b':'2'},{'a':'3','b':'4'}]")
-Hilfe-Funktion literal_eval in Modul ast:
literal_eval (node_or_string) sicher einen Ausdruck Knoten oder eine Zeichenfolge auszuwerten einen Python Ausdruck enthält. Der angegebene String oder Knoten darf nur aus den folgenden Python-Literalstrukturen bestehen: Strings, Bytes, Zahlen, Tupeln, Listen, Dicts, Sets, booleschen Werten und None.
lernte ich diesen Trick bei https://stackoverflow.com/a/21154138/1415639
Ah, du hast mich 9 Sekunden geschlagen –
'eval' kann schlechte Dinge tun, wenn Sie nicht 100% Kontrolle über den Inhalt der Datei haben. –
@MarkRansom Sehr wahr. Benachrichtigung hinzugefügt –