如何在yaml中引用标记值
YAML规范中没有定义任何字符串替换,因此您必须自己执行此操作,例如:如何在yaml中引用标记值,yaml,pyyaml,Yaml,Pyyaml,YAML规范中没有定义任何字符串替换,因此您必须自己执行此操作,例如: GET GPRS 1 202 reegan 当然,您也可以扩展解析器,但它仍然需要通过一些限制来指定关键字/值扩展的来源,在您的情况下,这些扩展是不相关的(即不是一些顶级映射)。感谢您的解决方案,如果可能的话,在部分写入yaml文件中有。我有更多信息,有10个映射,我要换一张地图value@ReeganMiranda是的,如果您在往返模式下使用my library(ruamel.YAML)而不丢失数据,您可以编写YAML文
GET GPRS 1 202 reegan
当然,您也可以扩展解析器,但它仍然需要通过一些限制来指定关键字/值扩展的来源,在您的情况下,这些扩展是不相关的(即不是一些顶级映射)。感谢您的解决方案,如果可能的话,在部分写入yaml文件中有。我有更多信息,有10个映射,我要换一张地图value@ReeganMiranda是的,如果您在往返模式下使用my library(ruamel.YAML)而不丢失数据,您可以编写YAML文件。如果要部分写入或写入部分解析(使用上述方法)数据,可以这样做。您可以写出结果,包括注释等,只要您不将完整的dict替换为新的dict(即仅更新现有的keys值)
GET GPRS 1 202 reegan
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