Pyyaml,在 Python 中访问字典

Pyyaml, accessing dictionary in Python

我有一些 yaml 我正在尝试访问 python 中的密钥。

---
nodes:
-
  AAAA: AAAA
  BBBB: BBBB
  CCCC: CCCC
  DDDD:
    AAAA: AAAA
    BBBB: AAAA
    CCCC: CCCC
-
  AAAA: AAAA
  BBBB: BBBB
  CCCC: CCCC
  DDDD:
    AAAA: AAAA
    BBBB: AAAA
    CCCC: CCCC

我正在尝试使用以下 python 格式进行访问。

import yaml
filepath = "report.yml"
audit = yaml.load(open(filepath))

audit['nodes']['DDDD'].items() 

但是我收到以下错误。

打印审核['nodes']['DDDD'].items() 类型错误:列表索引必须是整数,而不是 str

我期待看到的是在 DDDD

下返回的 key/values 列表

显然,我混淆了列表和听写,但我不太明白...是 yaml,python 还是我对 pyyaml 如何在听写中嵌套听写的理解?

您有一个节点列表。使用for循环访问每个节点,然后访问所需的值

例如:

import yaml
filepath = filename
audit = yaml.load(open(filepath))

for node in audit['nodes']:
    print( node['DDDD'].items() )

输出:

[('AAAA', 'AAAA'), ('CCCC', 'CCCC'), ('BBBB', 'AAAA')]
[('AAAA', 'AAAA'), ('CCCC', 'CCCC'), ('BBBB', 'AAAA')]