我正在测试在 RHEL7 环境中使用 PyYAML v3.12 来解析中等复杂的 YAML 配置文件内容的可行性,方法是向其提供密钥并获取密钥对值。该查询看起来像这样python my_yaml_search.py key_to_search并打印回value,例如:
所需的 bash 命令:python search_yaml.py $servername
所需的响应(仅值,而不是键值):myServer14
到目前为止,我已经创建了以下 .py:
import sys
import yaml
key = sys.argv[1]
with open("config.yml") as f:
try:
data = yaml.safe_load(f)
for k, v in data.items():
if data[k].has_key(key):
print data[k][v]
except yaml.YAMLError as exc:
print "Error: key not found in YAML"
配置.yml:
---
server:
servername: myServer14
filename: testfile.zip
location: http://test-location/1.com
repo:
server_name_fqdn: server.name.fqdn.com
port: 1234
到目前为止,运行python search_yaml.py $servername会产生list index out of range; python search_yaml.py servername什么也不产生。我是 Python/PyYAML 的新手,所以我认为我可能错误地向程序传递了一个变量,并且 sys 可能不是我需要的 Python 库,但是我在如何正确执行此操作方面遇到了障碍 -任何输入都会挽救我的理智。
qq_花开花谢_0
相关分类