在python中遍历yaml列表



我正试图设置一个yaml文件,但遇到了问题。我希望layers包含一个图层名称列表,然后为每个图层名称列出关联的样式。这就是我目前所拥有的:

wms-server:
name: weather
url: ${CACHE_WMS}
layers:
- name: RADAR_1KM_RRAI
styles: [TEMPERATURE, TEMPWINTER-LINEAR, TEMPWINTER, TEMPSUMMER-LINEAR, TEMPSUMMER, TEMPERATURE-LINEAR]
- name: GDPS.ETA_TT
styles: [BOLD, SIMPLE]

到目前为止,我所拥有的是不正确的,但我不知道如何修复它。

您的yaml文件似乎需要格式化一点。尝试这样更改:

wms-server:
name: weather
url: ${CACHE_WMS}
layers:
- name: RADAR_1KM_RRAI
styles: [TEMPERATURE, TEMPWINTER-LINEAR, TEMPWINTER, TEMPSUMMER-LINEAR, TEMPSUMMER, TEMPERATURE-LINEAR]
- name: GDPS.ETA_TT
styles: [BOLD, SIMPLE]

然后,您可以使用Python列出其中的数据(如果没有yaml库,请执行pip3安装pyyaml(。

import yaml
fi = open('yamlfile', 'r')
data = yaml.load(fi, Loader=yaml.FullLoader)
print(data)
for layer in data['wms-server']['layers']:
print(layer['name'])
print(layer['styles'])

将打印:

RADAR_1KM_RRAI
['TEMPERATURE', 'TEMPWINTER-LINEAR', 'TEMPWINTER', 'TEMPSUMMER-LINEAR', 'TEMPSUMMER', 'TEMPERATURE-LINEAR']
GDPS.ETA_TT
['BOLD', 'SIMPLE']

最新更新