在python中迭代yaml列表

2024-05-23 13:24:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图建立一个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]

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


Tags: 文件name名称图层yaml列表serverlayers
1条回答
网友
1楼 · 发布于 2024-05-23 13:24:52

看起来您的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']

相关问题 更多 >