gpt4 book ai didi

python - 是否可以使用 Ruby 或 Python 禁用 anchor /引用来发出有效的 YAML?

转载 作者:数据小太阳 更新时间:2023-10-29 07:12:48 27 4
gpt4 key购买 nike

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

也许我在网上搜索时遗漏了一些东西,但在 Psych 中似乎没有太多可用的选项,而且我也无法确定 PyYAML 是否允许这样做.

基本原理是我必须序列化一些数据并将其以可读的形式传递给一个不是真正的技术同事进行手动验证。有些数据是多余的,但我需要以最明确的方式列出它们以提高可读性( anchor 和引用是提高效率的好概念,但不是人类可读性)。

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

最佳答案

我在 PyYAML 网站 ( http://pyyaml.org/ticket/91 ) 上找到了这个相关的票证,看起来可以通过使用自定义转储器来禁用 anchor :

import yaml

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

def ignore_aliases(self, data):
return True

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

>>> yaml.dump([1L, 1L])
"[&id001 !!python/long '1', *id001]\n"

>>> yaml.dump([1L, 1L], Dumper=ExplicitDumper)
'[1, 1]\n'

您可以自定义更多属性以确保在 yaml.dump(...) 调用中进行 pretty-print 等。

关于python - 是否可以使用 Ruby 或 Python 禁用 anchor /引用来发出有效的 YAML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21016220/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com