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
这正是我要找的。
我设置了一个 .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
这正是我要找的。