【发布时间】:2019-11-27 19:02:44
【问题描述】:
在使用 Python 包 ruamel.yaml 解析 YAML 配置文件时,我需要考虑到嵌套可以在同一个 YAML 文件中以两种不同的样式描述:
- 使用新行和缩进
- 使用点 (.)
简化示例:
logging.yml
# 1. by using new line and indents
logging:
file:
name: app.log
# 2. by using dots (.)
logging.file.path: /logs
main.py
#!/usr/bin/env python3
import ruamel.yaml as yaml
with open('logging.yml', 'r') as file:
data = yaml.safe_load(file)
print(data)
实际输出:
{
'logging': {
'file': {
'name': 'app.log'
}
},
'logging.file.path': '/logs'
}
是否可以以某种方式配置ruamel.yaml,以便我可以将path 属性嵌套在如下所述的日志记录-> 文件中,以便之后可以轻松访问这些属性? :
{
'logging': {
'file': {
'name': 'app.log',
'path': '/logs'
}
}
}
【问题讨论】:
-
我看不出如何通过使用数据的内置打印来获得实际输出,所有内容都应该出现在一行上。
-
实际输出的漂亮打印只是为了便于阅读,而不是我在代码中关心的内容。应该在帖子中提到这一点,对此感到抱歉