gpt4 book ai didi

python - 如何在 Python 中从 yaml 转储中删除键/值对?

转载 作者:太空狗 更新时间:2023-10-29 21:56:40 25 4
gpt4 key购买 nike

假设我有一个朴素的类定义:

import yaml
class A:
def __init__(self):
self.abc = 1
self.hidden = 100
self.xyz = 2

def __repr__(self):
return yaml.dump(self)

A()

打印

!!python/object:__main__.A
abc: 1
hidden: 100
xyz: 2

是否有一种干净的方法可以从 yaml 转储的打印输出中删除包含 hidden: 100 的行?键名 hidden 是预先知道的,但它的 numeric 值可能会改变。

期望的输出:

!!python/object:__main__.A
abc: 1
xyz: 2

仅供引用:此转储仅用于显示,不会加载。

我想可以通过使用 yaml.representative 来抑制带有 key=hidden 的键/值对。另一种方法是在字符串输出中使用 RegEx 查找 hidden: [number]

最佳答案

我查看了 pyyaml 的文档,但没有找到实现您的目标的方法。解决方法是删除属性 hidden,调用 yaml.dump,然后将其重新添加到:

    def __repr__(self):
hidden = self.hidden
del self.hidden

return yaml.dump(self)

self.hidden = hidden

退一步讲,为什么要对__repr__使用yaml呢?你能自己动手而不是依赖 yaml 吗?

关于python - 如何在 Python 中从 yaml 转储中删除键/值对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33984604/

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