Python: 从.yaml中读取信息

Python: Read information from .yaml

我设置了一个 .yaml 文件,其中包含我的测量点的元数据。在这个 .yaml 文件中,我使用了包含信息的嵌套列表和字典,例如:

stations:
  - XXXX:
      statnr: 11111
      name: NAME
      name_csv: CSV
      name_snowpack: NAME_SHORT
      lat: 11.11111
      lon: 11.22222
      alt: 1111
      type: TYPE
      operator: OPERATOR
      param: 
        - x1
        - x2
        - x3
        - x4
        - x5
  - YYYY:
      statnr: 22222
      name: NAME2
      name_csv: CSV2
      name_snowpack: NAME_SHORT2
      lat: 22.22222
      lon: 22.33333
      alt: 2222
      type: TYPE2
      operator: OPERATOR2
      param: 
        - y1
        - y2
        - y3
        - y4
        - y5

接下来我尝试从该文件中读取特定条目。

import yaml
with open('./config/stations.yaml','r') as file:
    meta = yaml.load(file)
    stations = meta['stations'] 
    print(stations[0])

这有效并打印出有关列表条目 'XXXX' 的所有信息,但如果我只想检索有关运算符的信息,就像我对 python 字典所做的那样:

print(stations[0]['operator'])

我得到一个:KeyError:'operator'。

那么我该如何处理这个条目或者比它低一级的条目呢? 感谢您的帮助!

自己找到了问题的答案。显然之前没有尝试足够彻底..

而不是像上面那样在我的 stations.yaml 中有一个电台列表:

stations: 
  - XXXX:
     statnr:1111
     ....
  - YYYY:
     statnr:2222
     ....

我用的是另一本词典:

stations: 
  XXXX:
    statnr:1111
    param:
      -x1
      -x2
    ....
  YYYY:
    statnr:2222
    param:
      -x1
      -x2
    ....

这样我可以使用:

import yaml

with open('./config/stations.yaml','r') as file:
    meta = yaml.load(file)
    stations = meta['stations'] 
    txt = stations['XXXX']['param'][0]   
    print(txt) 

并得到结果

x1

这正是我要找的。