我设置了一个.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:“操作员”。
那么我该如何解决这个条目,或者甚至是在其下一级的条目? 感谢您的帮助!
答案 0 :(得分:0)
我自己找到了问题的答案。显然以前没有尝试过足够彻底。
在我的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
这正是我想要的。