将部分 YAML 加载到字典中

Loading partial YAML into a dictionary

我对每个实例都有以下 YAML 配置。

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

我要加载

如何有条件地将 YAML 块加载到字典中?

下游代码是这样的

#bin/ksh
login = {login}
var1 = {var1}
var2 = {var2}

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

只需加载整个文件,然后只抓取所需密钥下的内容。

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

类似的东西。

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