python - 遍历 YAML 对象
问题描述
我有 yml 文件
- id: id1
memberPort: 8080
instance:
name: test
id: q1
site: us
dns: dns1
ip: 1p2
state: available
- id: id2
memberPort: 8080
instance:
name: test2
id: q2
site: us
dns: dns2
ip: ip1
state: available
我想遍历这个并获得 ip print ip1 和 ip2 的 vuals
尝试查看示例并获得以下代码
import yaml
f = open('file.yml')
yaml_file = yaml.safe_load(f)
for entry in yaml_file["id"]:
print yaml_file[id]["ip"])
但它不工作
知道如何修复这个 python 谢谢
解决方案
您将阅读和迭代条目与评估它们混合在一起。将两者分开,如下所示:
import yaml
f = open('/tmp/test.yaml')
yaml_file = yaml.safe_load(f)
for entry in yaml_file:
print(entry)
print("ID: " + entry['id'])
print("IP: " + entry['instance']['ip'])
结果:
{'id': 'id1', 'memberPort': 8080, 'instance': {'name': 'test', 'id': 'q1', 'site': 'us', 'dns': 'dns1', 'ip': '1p2', 'state': 'available'}}
ID: id1
IP: 1p2
{'id': 'id2', 'memberPort': 8080, 'instance': {'name': 'test2', 'id': 'q2', 'site': 'us', 'dns': 'dns2', 'ip': 'ip1', 'state': 'available'}}
ID: id2
IP: ip1
推荐阅读
- xamarin.forms - 如何将滑动点添加到选项卡式/轮播页面?
- python - 在两个字典之间映射的 Pythonic 方法,其中一个字典具有嵌套键
- qml - FileDialog(QtQuick Object)中实例化一个c++类,报错:Cannot assign object to property
- python-2.7 - Python IndentationError - Lambda 备份
- reactjs - 单选按钮的选中值未突出显示
- karabiner - 鼠标按钮作为修饰符
- ios - 如何使 Objective-C 泛型与 Swift 一起工作
- java - Ubuntu 上 Docker 中的 MySQL:警告:全局可写配置文件被忽略
- javascript - 我的 angularjs 表单上的 $invalid 和 $valid 都是未定义的
- node.js - 在 NodeJS 上的 Firestore 中收集所有数据