Pře*_*tný 3 python yaml text-parsing automated-refactoring
我想在 Python 中更新 YAML 文件值,而不丢失 Python 中的格式和注释。例如我想改造
YAML 文件
value: 456 # nice value
Run Code Online (Sandbox Code Playgroud)
到
value: 6 # nice value
Run Code Online (Sandbox Code Playgroud)
界面类似于
y = yaml.load('path')
y['value'] = 6
y.save()
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以在Python中优雅地做到这一点(无需编写新的YAML解析库)?
我需要系统的长期可维护的解决方案 - 所以regex对我来说没有替代是可以的,因为当你在代码中对其中的大部分进行操作时,它们会变得丑陋且难以维护。
我还没有找到任何可以完成这项工作的 Python 库。我发现的唯一正在考虑该功能但尚未实现的库是 C 库libyaml(Github 上的问题)。我有错过任何吗?
这个问题也可以表述为:你知道Python中的一些自动重构YAML库吗?
谢谢。
Cub*_*x48 10
ruamel.yaml可能就是您正在寻找的,它是一个支持注释往返保存的 YAML 解析器/发射器:
import sys
from ruamel.yaml import YAML
yaml_data = "value: 456 # nice value"
yaml = YAML()
data = yaml.load(yaml_data)
data["value"] = 6
yaml.dump(data, sys.stdout)
Run Code Online (Sandbox Code Playgroud)
输出:
value: 6 # nice value
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2941 次 |
| 最近记录: |