当前位置: 首页 > 知识库问答 >
问题:

YAML:键的锚点?

羊毅庵
2023-03-14

我可以在不重新键入的情况下重用YAML中的键吗?如果可以通过锚点重复该键,则重命名该键将非常简单。

splitTestVariants:
  lowCost: 0
  mediumCost: 1
  highCost: 2

pricePlans:
  # reuse lowCost key instead this comment without retyping it
    basic: 100
    premium: 200
    vip: 300
  # reuse mediumCost key instead this comment without retyping it
    basic: 200
    premium: 300
    vip: 400
  # reuse highCost instead this comment without retyping it
    basic: 300
    premium: 400
    vip: 500

共有1个答案

沈伟
2023-03-14

当然,使用锚点和别名来减少输入是可能的:

import sys
import ruamel.yaml

yaml_str = """\
splitTestVariants:
  &l lowCost: 0
  &m mediumCost: 1
  &h highCost: 2

pricePlans:
  *l :
    basic: 100
    premium: 200
    vip: 300
  *m :
    basic: 200
    premium: 300
    vip: 400
  *h :
    basic: 300
    premium: 400
    vip: 500
"""

yaml = ruamel.yaml.YAML()
yaml.default_flow_style = False
data = yaml.load(yaml_str)
print(list(data['pricePlans'].keys()))

这给出了:

['lowCost', 'mediumCost', 'highCost']

以上是YAML的一个特色,而不是< code>ruamel.yaml(我是其作者)的特色。

请注意别名(*X)和映射值指示符(之间的空格。并非所有的YAML解析器(包括<code>libyaml

 类似资料:
  • 我有以下损坏的docker compose文件 此操作失败,并显示以下错误 问题1:如何在中合并数组?我尝试使用的语法是用于合并字典的语法 问题2:如果没有办法合并数组,有没有变通方法? 用例:我有多个服务,其中一些映射一些卷,另一些映射其他卷,另一些映射所有卷。我不想重复我自己。 谢谢你!

  • 本文向大家介绍yaml 基本的YAML类型,包括了yaml 基本的YAML类型的使用技巧和注意事项,需要的朋友参考一下 示例            

  •     之前提到过,视图的center属性和图层的position属性都指定了anchorPoint相对于父图层的位置。图层的anchorPoint通过position来控制它的frame的位置,你可以认为anchorPoint是用来移动图层的把柄。     默认来说,anchorPoint位于图层的中点,所以图层的将会以这个点为中心放置。anchorPoint属性并没有被UIView接口暴露出来

  • 在读取yaml时,如果遗漏了一个键,如何验证?用于读取yaml的API是snakeYaml

  • 我有一个带有属性映射的YAML配置文件: 引导将解析为: 下面的实际示例。 : 对结果对象调用: