将Python的命名元组(namedtuple)序列化为json。

9 浏览
0 Comments

将Python的命名元组(namedtuple)序列化为json。

如何在保留字段名称的情况下将一个 namedtuple 序列化为 json 是推荐的方法?

将一个 namedtuple 序列化为 json 会导致只有值被序列化,字段名称会丢失。我希望在 json 化时也保留字段,所以做了以下操作:

class foobar(namedtuple('f', 'foo, bar')):
    __slots__ = ()
    def __iter__(self):
        yield self._asdict()

以上做法能够按照我预期的方式将其序列化为 json,并且在其他地方(比如属性访问等)使用时表现得像一个 namedtuple,除了在迭代时结果不像元组(在我的用例中这是可以接受的)。

如何才能以保留字段名称的方式正确地转换为 json?

0