目前尚不清楚是否可以对同一个映射多次使用YAML 合并键运算符。
\n困惑来自于:
\n原始规格说:
\n\n\n\xe2\x80\x9c<<\xe2\x80\x9d 合并键用于指示应将一个或多个指定映射的所有键插入到当前映射中。
\n
但他们没有提供示例,我在其他地方找不到它。喜欢:
\ndefs:\n- map1: &map1-ref\n key1: val1\n- map2: &map2-ref\n key2: val2\n\nconfig:\n database:\n <<: *map1-ref\n <<: *map2-ref\n key3: val3\nRun Code Online (Sandbox Code Playgroud)\n哪些主要解析器支持多重合并(python/ruby/java/node)?
\n更新Python 3检查代码:
\nimport yaml\nwith open("my.yml") as f:\n y = yaml.safe_load(f)\n print(y)\nRun Code Online (Sandbox Code Playgroud)\nUPDATE 2 @flyx建议的语法可以用另一种方式编写:
\nconfig:\n database:\n <<:\n - *map1-ref\n - *map2-ref\n key3: val3\nRun Code Online (Sandbox Code Playgroud)\n
fly*_*lyx 13
虽然快速测试表明 PyYAML 确实支持这一点,但我建议不要这样做,因为<<在同一映射中拥有多个相同的键 ( ) 违反了核心 YAML 规范(1.1 和 1.2)。
此外,这是不必要的,因为合并键可以采用多个映射作为参数:
\ndefs:\n- map1: &map1-ref\n key1: val1\n- map2: &map2-ref\n key2: val2\n\nconfig:\n database:\n <<: [*map1-ref, *map2-ref]\n key3: val3\nRun Code Online (Sandbox Code Playgroud)\n如果您使用此语法,问题可以归结为 \xe2\x80\x9e 哪些实现支持合并键 \xe2\x80\x9c。我无法给出完整列表,但这是我所知道的:
\nYAML::PP| 归档时间: |
|
| 查看次数: |
9123 次 |
| 最近记录: |