server:
- import:
cmd: GET GPRS <gprsEn> <gprsVa> <gprsSt>
- update:
gprsEn: 1
gprsVa: 202
gprsSt: reegan
这是我的yaml文件如何在GET GPRS 1 202 reegan
中引用gprsEn,gprsVa和gprsSt值我需要输出就像
GET GPRS 1 202 reegan
答案 0 :(得分:1)
在YAML规范中的任何地方都没有定义字符串替换,因此您必须自己执行此操作,例如:通过做:
import ruamel.yaml as yaml
yaml_str = """\
server:
- import:
cmd: GET GPRS <gprsEn> <gprsVa> <gprsSt>
- update:
gprsEn: 1
gprsVa: 202
gprsSt: reegan
"""
data = yaml.load(yaml_str, Loader=yaml.RoundTripLoader)
cmd = data['server'][0]['import']['cmd'].replace('<', '{').replace('>', '}')
keywords = data['server'][1]['update']
print(cmd.format(**keywords))
打印出您想要的输出:
GET GPRS 1 202 reegan
你当然也可以扩展解析器,但它仍然需要通过箍来指定关键字/值扩展的来源,在你的情况下是不相关的(即不是一些顶层映射)。