首页 > 解决方案 > Python - 从 yaml 获取所有 url

问题描述

我需要将 yaml 文件中的数据提取到所有 url 的字典中 - 下面是一个示例 yaml

endpoints:
  app1xxx:
    url:
      - http://xxx/status
      - http://dev-xxx/status
      - http://stg-xxx/status
      - http://tst-xxx/status
  app2yyy:
    url:
      - http://yyy/
      - http://dev-yyy/
      - http://stg-yyy/
      - http://tst-yyy/

我试图把它弄出来:

with open(r'file.yml') as file:
    documents = yaml.full_load(file)
    print(documents['endpoints']['app1xxx']['url'])

哪个当然可以正确获取 url,但仅来自 1 个应用程序 - 并且任何在第二个括号中交换的尝试都失败了 - 有人有什么建议吗?

标签: pythonyaml

解决方案


试试这个:

import yaml

with open(r"file.yml") as file:
    documents = yaml.full_load(file)

urls = []
for app in documents["endpoints"]:
    urls += documents["endpoints"][app]["url"]

print(urls)

推荐阅读