【发布时间】:2012-07-28 21:33:55
【问题描述】:
根据http://yaml.org/spec/current.html#id2509980 YAML 文件中的 cmets 是一个表示细节,不得在序列化/表示图 (http://yaml.org/spec/current.html#representation/) 中。看起来 Psych 正在根据规范进行解析并丢失了 cmets,这意味着当文件包含 cmets 时,无法解析 YAML 文件并以完全相同的方式再次对其进行序列化。在我看来这很奇怪,因为 cmets 在此类文件中确实很重要(例如配置)。
有谁知道是否可以使用现有库解析 cmets,或者是否可以自己完成这一切?
【问题讨论】:
-
这是一个延伸,但您可以在加载之前将其克隆到一个临时文件中,然后在序列化后合并两个文件(使用差异?)......只要整体结构相同......或者......这是一个疯狂的想法......?
-
This blog post 建议唯一保留注释的 YAML 解析器是用于 Python 的 ruamel。