是否可以使用Ruby或Python发出禁用锚定/引用的有效YAML?

2024-09-29 17:15:20 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以禁用在PyYAML或Ruby的Psych引擎中创建锚和引用(并有效地显式列出冗余数据)?在

也许我在搜索网页时漏掉了一些东西,但是在Psych中似乎没有很多可用的选项,我也无法确定PyYAML是否也允许这样做。在

基本原理是我必须序列化一些数据,并以可读的形式传递给一个不太懂技术的同事进行手动验证。有些数据是多余的,但我需要以一种最明确的方式列出,以提高可读性(锚定和引用是提高效率的一个不错的概念,但对人的可读性来说不是这样)。在

Ruby和Python是我选择的工具,但是如果有其他一些相当简单的方法来“展开”YAML文档,它可能就可以了。在


Tags: 数据引擎网页序列化选项方式手动技术
1条回答
网友
1楼 · 发布于 2024-09-29 17:15:20

我在PyYAML网站(http://pyyaml.org/ticket/91)上找到了这张相关的罚单,它看起来可以通过使用自定义转储程序禁用锚,方法如下:

import yaml

class ExplicitDumper(yaml.SafeDumper):
    """
    A dumper that will never emit aliases.
    """

    def ignore_aliases(self, data):
        return True

因此,例如,使用标准转储程序和新的显式转储程序可以实现以下输出:

^{pr2}$

您可以在yaml.dump(...)调用中自定义其他属性以确保打印效果良好。在

相关问题 更多 >

    热门问题