gpt4 book ai didi

Python yml 配置文件只读

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:13 25 4
gpt4 key购买 nike

我有一个具有以下结构的 .yml 文件:

logging.level.org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG
mambu:
connectiontimeout: 20000
receivetimeout: 20000


---
spring:
profiles: local
saraza:
api:
url: 'http://0.0.0.0'
path: '/saraza'
---
spring:
profiles: local2
saraza:
api:
url: 'http://0.0.0.2'
path: '/saraza2'

现在我想制作一本仅包含配置文件“本地”中提供的设置的字典。我写了这个函数:

def app_config():
"""
Returns app targets settings
"""
with open('app.yml', 'r') as stream:
documents = yaml.load_all(stream)

# Keep only local profile
settings = [doc for doc in documents if doc['spring']['profiles'] == 'local'][0]
return settings

但是当它执行时我得到:

.0 = <generator object load_all at 0x7f0ff9383c50>

> settings = [doc for doc in documents if doc['spring']['profiles'] == 'local'][0]
E KeyError: 'spring'

conftest.py:21: KeyError

最诚挚的问候

最佳答案

---document prefix这是 YAML 语法的正常部分。如果将其删除,则该文件中的多个文档将合并为一个,现在您将拥有重复的 map 键。由于您正在读取包含多个文档的文件,因此您应该使用 yaml.load_all() 它将解析所有文档并将它们返回到列表中。您对该文档列表的处理方式取决于您的用例的需求。

关于Python yml 配置文件只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47001429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com