What is the recommended way of serializing a namedtuple
to json with the field names retained?
Serializing a namedtuple
to json results in only the values being serialized and the field names being lost in translation. I would like the fields also to be retained when json-ized and hence did the following:
class foobar(namedtuple('f', 'foo, bar')):
__slots__ = ()
def __iter__(self):
yield self._asdict()
The above serializes to json as I expect and behaves as namedtuple
in other places I use (attribute access etc.,) except with a non-tuple like results while iterating it (which fine for my use case).
What is the "correct way" of converting to json with the field names retained?
There is a more convenient solution is to use the decorator (it uses the protected field
_fields
).Python 2.7+:
Python 3.6.6+: