yamlファイルがあります。時間ユーザの任意の時点で読む方法PythonでYAMLを動的に更新する
---
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
ld_c
または後続タグでYAMLを更新したり、任意のタグを除去することができます。
現在のところ、私はld_a
をdictでチェックしており、ネストされたキー、値(下記)を処理しています。
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)
しかし、ユーザーがキーを追加/削除するときは、たとえばld_c
となります。これをPythonでどのように扱うべきですか?ここに私の基本的な知識を用いて
あなたは、プログラムが実行されているファイルシステムのfile.yamlの内容を変更することで、ユーザーがキーを追加/削除すると言っているようです。ファイルを変更するたびにユーザーがプログラムを再実行できない理由がある場合は、前提条件や要件を明確にする必要があります。 – Peter
私はそれを取得しないでください。間隔を置いてファイルをリロードし、新しい 'keys'(例えば' ld_c'のようなもの)を確認し、そこに操作を実行するためのものがあるかどうかを確認することができます。つまり、コードに 'if'文を追加する必要があるだけです! – TechJS
もう一つのことは、 '後続タグ'の意味ですか?あなたは 'ld_c'、' ld_d'、 'ld_e'などを意味しますか? – TechJS