首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免在PyYAML中引用

避免在PyYAML中引用
EN

Stack Overflow用户
提问于 2012-11-23 03:14:12
回答 1查看 6.6K关注 0票数 15

我将YAML与PyYAML一起使用。在转储嵌套结构后,有没有办法避免*id002引用?为了可读性,我希望看到那里的实际(元组)值。

在尝试生成一个小型示例时,我注意到只有当我使用相同的id对象时才会发生这种情况:

代码语言:javascript
复制
import yaml

t = ("b", "c")
x = {(1, t):1, (2, t):2, }
print(yaml.dump(x))

所以我认为copy.copy()可以解决这个问题,但是对于元组,它似乎不起作用:(我可以用不同的id创建一个新的元组吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-29 19:11:46

This method适用于我的Python2和Python3,并且不需要monkeypatching:

代码语言:javascript
复制
import yaml

class NoAliasDumper(yaml.SafeDumper):
    def ignore_aliases(self, data):
        return True

t = ("b", "c")
x = {(1, t):1, (2, t):2, }
print(yaml.dump(x, Dumper=NoAliasDumper))

哪一项会产生

代码语言:javascript
复制
? - 1
  - [b, c]
: 1
? - 2
  - [b, c]
: 2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13518819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档