python - 转储配置时有什么方法可以指定 YAML 版本吗?
问题描述
我有一个配置要存储在 YAML 文件中以备将来使用。但我也想存储YAML 1.2
版本。
import yaml
with open('r.yaml', 'w') as r:
a = {'len' : 5, 'weidth' : 3}
yaml.dump(a, r)
我想要输出为
%YAML 1.2
---
len: 5
weidth: 3
编辑:上述问题的扩展。
在同一个文件中转储多个配置时是否可以删除冗余
import yaml
with open('r.yaml', 'w') as r:
a = [{'len' : 5, 'weidth' : 3}, {'a': 2, 'b': 4}]
yaml.dump_all(a, r, version=(1,2))
和预期输出
%YAML 1.2
---
len: 5
weidth: 3
---
a: 2
b: 4
目前是
%YAML 1.2
---
len: 5
weidth: 3
%YAML 1.2
---
a: 2
b: 4
解决方案
将版本作为主要和次要版本的元组作为关键字参数传递给yaml.dump
:
>>> yaml.dump({'foo': 'bar'}, sys.stdout, version=(1,2))
%YAML 1.2
---
foo: bar
文档中提到了关键字属性,但我没有看到明确提及如何传递版本。version="1.2"
引发 a ValueError
,尽管回溯清楚地表明了该值的用途。
推荐阅读
- github - 使用 git-lfs 存储的笔记本的 Google Colab 徽章
- reactjs - 在 GraphQL 中,如何创建一个不区分大小写的查询,用于在搜索栏中查找名称?
- android - 我应该在 MainActivity 中创建一个 ViewModel 以便将 MutableLiveData 与 NavigationDrawer 一起使用吗?
- optimization - 将集合和索引定义为别名时出错
- mysql - mysqldump 与选择 *
- html - 你如何让一个 div 有一个活跃的或访问的风格?
- ruby - Chef 库问题从 Chef 12 转换为 Chef 14
- javascript - 从显示名称 Discord JS 中获取 id
- sql - SQL Server:如果记录不存在,则将记录插入表中
- security - 从应用程序模拟用户角色(例如经理、承包商等)向 Amazon Elastic Search 发出 POST 请求