Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在yaml中引用标记值_Yaml_Pyyaml - Fatal编程技术网

如何在yaml中引用标记值

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