YAML ファイル内のドキュメントを にマッピングし、dict
それらを適切にマッピングするという次の問題があります。
db.yml
サーバー ( )を表す次の YAML ファイルがあります。
instanceId: i-aaaaaaaa
environment:us-east
serverId:someServer
awsHostname:ip-someip
serverName:somewebsite.com
ipAddr:192.168.0.1
roles:[webserver,php]
この YAML ファイルをロードします。これは問題なく実行できます。理解できたと思います。
instanceId = getInstanceId()
stream = file('db.yml', 'r')
dict = yaml.load_all(stream)
for key in dict:
if key in dict == "instanceId":
print key, dict[key]
ロジックが次のように機能することを望みます。
- yaml を読み込み、dict にマップする
- ドキュメント内のすべての dict を調べ、
instanceId
によって設定されたものと一致する場合は、そのドキュメントgetInstanceId()
のすべてのキーと値を出力します。
コマンド ラインからマップ データ構造を見ると、次のようになります。
{'instanceId': 'i-aaaaaaaa environment:us-east serverId:someServer awsHostname:ip-someip serverName:someserver ipAddr:192.168.0.1 roles:[webserver,php]'}
YAML ファイルのデータ構造を不適切に作成している可能性があると思いますdict
.
補足: を使用してこのファイル内のすべてのドキュメントをロードすることはできませyaml.load()
んyaml.load_all()
。