将部分YAML加载到字典中

2024-06-24 13:04:03 发布

您现在位置:Python中文网/ 问答频道 /正文

对于每个实例,我有以下YAML配置。在

prod:
    login: A
    var1: VP1
    var2: VP2
QA:
   login: B
   var1: QP1
   var2: QP2

我要装货

  • 如果我当前的环境是QA,那么只有QA块进入字典。在
  • 只有Prod块进入dict,如果我当前的环境是Prod

我如何有条件地将一段YAML加载到dict中?在

下游代码是这样的

^{pr2}$

我希望这些值根据环境在ksh脚本中解析。在


Tags: 实例yaml环境loginprodqadictvar1
2条回答
import yaml
import socket

qa="172.27.139.94"
prod="172.27.139.95"
ip = socket.gethostbyname(socket.gethostname())
if ip == qa:
    yml_dic = yaml.load(open('yamlconfig.yml', 'r'))["QA"]
elif ip == prod:
    yml_dic = yaml.load(open('yamlconfig.yml', 'r'))["prod"]

print yml_dic

只需加载整个文件,然后只获取你想要的密钥下的内容。在

with open('data.yml') as f:
    d = yaml.load(f.read())
    print yaml.dump(d['QA'])

差不多吧。在

相关问题 更多 >