Ich habe verschiedene YAML-Dateien mit einer unterschiedlichen Datenstruktur (Beispiel 1). In meinem Projekt muss ich einige Informationen aus diesen Dateien nehmen. Ich habe eine andere YAML-Datei geschrieben, um die Ressourcen zu nutzen, die ich brauche (Beispiel 2).Python: Yaml Daten aus einer anderen Yaml-Datei
Beispieldatei
res1.yaml
:--- form_title: mytitle icons: 1: icon: dog_icon link: '/my/file/path1/file1' 2: icon: wolf_icon link: '/my/file/path2/file2' 3: icon: cat_icon link: '/my/file/path3/file3' 4: icon: rabbit_icon link: '/my/file/path4/file4' ---
Beispieldatei
myapp_res.yaml
:--- resources: 1: res: res1.yaml res_type: yaml 2: res: res2.jpg res_type: image data: my_form_title: res: 1 type: text var: form_title my_needed_icon: res: 1 type: icon var: icons: 1: link #etc... ---
Ich benutze dieses Skript Informationen zu erhalten, wie "my_form_title":
import ruamel.yaml as yaml
myapp_res = yaml.load(myapp_res.yaml)
test_var = "my_form_title"
my_data = myapp_res["data"][test_var]
my_resource = my_data["res"]
my_res_file = myapp_res["resources"][my_resource]["res"]
yamel_res = yaml.load(my_res_file)
my_var = my_data["var"]
print(yamel_res[my_var])
Aber wie kann ich Daten in einem Unterpfad wie "my_needed_icon" bekommen? mit früheren Skript bekomme ich den Fehler:
TypeError: unhashable type: 'dict'
Ich kann nur die Struktur der myapp_res.yaml ändern, und meinen Python-Skript offensichtlich.
ich gemacht habe einen Fehler gemacht, als ich den Code kopiert haben:
Sie wahrscheinlich zu schreiben bedeutete. Danke für die Korrektur. – Luca
@luca, wenn das das Problem löst, dann markieren Sie bitte die Antwort, dann wissen andere, dass dies Ihr Problem gelöst hat – Anthon