Ich habe Yaml-Datei, sieht so aus.Wie zu lesen Dynamische Aktualisierung von YAML mit Python
---
env:
credentials:
endpoint: "value"
username: "value"
tenant: "value"
password: "value"
ld_a:
network:
subnet-name:
- sub1
ld_filename:
- ld1.xml
fd_filename:
- fd1.xml
- fd2.xml
ld_b:
network:
subnet-name:
- sub2
ld_filename:
- ld2.xml
fd_filename:
- fd1.xml
- fd2.xml
Zu jedem Zeitpunkt Benutzer kann die YAML mit ld_c
oder nachfolgenden Tags aktualisieren oder zu Tag entfernen.
Ab jetzt überprüfe ich für ld_a
in dict und Handhabung verschachtelten Schlüssel, Werte (wie unten).
with open(r'C:\file.yaml', 'r') as fd:
data = yaml.load(fd)
items = data.get('env')
for descriptor, value in items.iteritems():
if descriptor == 'credentials':
tenant = value.get('tenant')
username = value.get('username')
password = value.get('password')
endpoint = value.get('endpoint')
if descriptor == 'ld_a':
for descriptor in value.viewvalues():
for user_networks in descriptor.get('subnet-name'):
get_network_details(neutron, user_networks)
Aber wenn der Benutzer das Hinzufügen würde/Entfernen-Tasten zB ld_c
. Wie sollen wir das in Python handhaben?
Es klingt, als würden Sie sagen, dass ein Benutzer Schlüssel hinzufügen/entfernen würde, indem er den Inhalt von file.yaml in dem Dateisystem ändert, in dem das Programm läuft. Wenn es einen Grund gibt, warum der Benutzer das Programm nicht jedes Mal erneut ausführen kann, wenn er die Datei ändert, dann müssen Sie vielleicht Ihre Annahmen/Anforderungen klären. – Peter
Ich verstehe es nicht. Sie könnten die Datei in Intervallen neu laden und nach neuen 'Schlüsseln' suchen (zB' ld_c') und sehen, ob es Dinge gibt, mit denen Operationen ausgeführt werden können. Ich meine, Sie müssen einfach mehr und mehr 'if' Anweisungen zu Ihrem Code hinzufügen! – TechJS
Und eine andere Sache, was meinst du mit 'nachfolgenden Tags'? Du meinst 'ld_c',' ld_d', 'ld_e' und so weiter? – TechJS