如何在ruamel.yaml

时间:2017-06-22 15:38:03

标签: yaml pyyaml ruamel.yaml

ruamel.yaml.RoundTripRepresenter.add_representer(type(None), represent)

0.14.X版本的ruamel.yaml包

中正常工作

如何在ruamel.yaml软件包的旧版本(< = 0.11 )中使用相同的功能,或者在以前版本的软件包中使用其他方法?

这是我的程序示例

def represent(self, data):
    return self.represent_scalar(u'tag:yaml.org,2002:null', u'NULL')

ruamel.yaml.RoundTripRepresenter.add_representer(type(None), represent)

data = ruamel.yaml.round_trip_load(input.yaml)
ruamel.yaml.round_trip_dump(data, output.yaml)

在上面的代码运行时遇到错误

ruamel.yaml.RoundTripRepresenter.add_representer(type(None), represent_none)\nAttributeError: 'module' object has no attribute 'RoundTripRepresenter'

1 个答案:

答案 0 :(得分:0)

在早期版本的ruamel.yaml中,RoundTripRepresenter(在representer.py中定义)未导入main.py,因此无法通过__init__.py(<{1}}登记/>  from ruamel.yaml.main import *

所以你应该从源代码中导入它:

from ruamel.yaml.representer import RoundTripRepresenter

RoundTripRepresenter.add_representer(type(None), represent)