YAML for python dictionaries:复制/引用块

时间:2011-08-18 14:49:45

标签: yaml

我正在编写一个包含一些配置数据的YAML文件。它将作为字典字典读入Python。有些数据需要在不同的密钥下重复。有没有办法在没有大量剪切和粘贴的情况下做到这一点?

以下是yaml文件的示例:

BLOCK1:
  a: 1
  b: 2
  c: 3

BLOCK2:
  a: 4
  b: 5
  c: 6

BLOCK3: # Basically the same as BLOCK2
  a: 4  # Is there a way to make this a link to BLOCK2 or a copy of BLOCK2?
  b: 5
  c: 6

1 个答案:

答案 0 :(得分:1)

是的,有。看看:http://pyyaml.org/wiki/PyYAMLDocumentation#Aliases

基本上,你应该这样做:

BLOCK1: 
  a: 1
  b: 2
  c: 3

BLOCK2: &block
  a: 4
  b: 5
  c: 6

BLOCK3: *block

结果将是:

{'BLOCK1': {'a': 1, 'b': 2, 'c': 3},
 'BLOCK2': {'a': 4, 'b': 5, 'c': 6},
 'BLOCK3': {'a': 4, 'b': 5, 'c': 6}}