将部分 YAML 加载到字典中
Loading partial YAML into a dictionary
我对每个实例都有以下 YAML 配置。
prod:
login: A
var1: VP1
var2: VP2
QA:
login: B
var1: QP1
var2: QP2
我要加载
- 如果我当前的环境是 QA,则只有 QA 块进入字典。
- 如果我当前的环境是prod,则只能将Prod block into dict。
如何有条件地将 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
我对每个实例都有以下 YAML 配置。
prod:
login: A
var1: VP1
var2: VP2
QA:
login: B
var1: QP1
var2: QP2
我要加载
- 如果我当前的环境是 QA,则只有 QA 块进入字典。
- 如果我当前的环境是prod,则只能将Prod block into dict。
如何有条件地将 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