我将YAML与PyYAML一起使用。在转储嵌套结构后,有没有办法避免*id002引用?为了可读性,我希望看到那里的实际(元组)值。
在尝试生成一个小型示例时,我注意到只有当我使用相同的id对象时才会发生这种情况:
import yaml
t = ("b", "c")
x = {(1, t):1, (2, t):2, }
print(yaml.dump(x))所以我认为copy.copy()可以解决这个问题,但是对于元组,它似乎不起作用:(我可以用不同的id创建一个新的元组吗?
发布于 2021-03-29 19:11:46
This method适用于我的Python2和Python3,并且不需要monkeypatching:
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))哪一项会产生
? - 1
- [b, c]
: 1
? - 2
- [b, c]
: 2https://stackoverflow.com/questions/13518819
复制相似问题