Каков рекомендуемый способ сериализации namedtuple
для json с сохраненными именами полей?
Сериализация a namedtuple
to json приводит только к значениям, которые сериализуются, и имена полей теряются при переводе. Я бы хотел, чтобы поля также сохранялись при json-ized и, следовательно, выполняли следующее:
class foobar(namedtuple('f', 'foo, bar')):
__slots__ = ()
def __iter__(self):
yield self._asdict()
Вышеприведенный сериализуется в json, как я ожидаю, и ведет себя как namedtuple
в других местах, которые я использую (доступ к атрибутам и т.д.), за исключением тех случаев, когда они не имеют кортежей, когда они повторяются (что отлично подходит для моего варианта использования).
Что такое "правильный способ" преобразования в json с сохраненными именами полей?