Ich habe das folgende Problem der Zuordnung von Dokumenten innerhalb einer YAML-Datei zu einem dict
und ordne sie korrekt zu.
Ich habe die folgende YAML-Datei, die einen Server darstellt ( db.yml
):
Ich lade diese YAML-Datei, was ich ohne Probleme tun kann. Ich glaube, ich verstehe das.
%Vor%Ich möchte, dass die Logik wie folgt funktioniert:
instanceId
mit dem übereinstimmt, was von getInstanceId()
festgelegt wurde, dann drucke alle Schlüssel und Werte für dieses Dokument aus. Wenn ich die Kartendatenstruktur von der Befehlszeile aus betrachte, bekomme ich:
%Vor% Ich denke, ich könnte die Datenstruktur für die YAML-Datei nicht korrekt erstellen, und wenn ich den Inhalt von dict
anpasse, bin ich etwas verloren.
Randnotiz: Ich kann nicht alle Dokumente in dieser Datei mit yaml.load()
laden, ich habe yaml.load_all()
versucht, was zu funktionieren scheint, aber mein Hauptproblem besteht immer noch.
Ich denke, deine Yaml-Datei sollte so aussehen (oder zumindest so ähnlich, so dass sie trotzdem richtig strukturiert ist):
%Vor% Dann gibt yaml.load(...)
zurück:
Und Sie können von dort aus gehen ...
So benutzt wie:
%Vor%Ein zusätzlicher Fehler in Ihrem Code, der nicht mit YAML zu tun hat:
%Vor% in
ist ein Operator, der auf Sequenztypen und auch auf Karten. Deshalb ist das kein Syntaxfehler ... aber es tut nicht was Sie wollen.
key in dict
wird immer als True
ausgewertet, da alle Schlüssel, die Sie durchlaufen, im Diktat enthalten sind. Also kocht dein Code auf True == "instanceId"
, was immer zu False
ausgewertet wird, weil der boolesche Wert True
niemals dieser Zeichenfolge entspricht.
Sie haben vielleicht bemerkt, dass die print
-Anweisung keine Ausgabe erzeugt; Dies liegt daran, dass es nie aufgerufen wird.
Tags und Links python data-structures dictionary yaml