Как использовать представитель в более старой версии (версия <= 0.11) ruamel.yaml

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

Прекрасно работает в 0.14.X версия пакета ruamel.yaml

Как использовать ту же функциональность в более старой версии (<= 0.11) пакета ruamel.yaml или альтернативный способ использования в предыдущей версии пакета?

вот пример моей программы

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 ответ

В старых версиях ruamel.yaml RoundTripRepresenter (определено в representer.py) не был импортирован в main.py и, следовательно, не доступны через __init__.py (который делает
from ruamel.yaml.main import *)

Таким образом, вы должны просто импортировать его из источника:

from ruamel.yaml.representer import RoundTripRepresenter

RoundTripRepresenter.add_representer(type(None), represent)
Другие вопросы по тегам