序列化 namedtuple
的推荐方法是什么?保留字段名称的json?
将 namedtuple
序列化为 json 只会导致值被序列化并且字段名称在翻译中丢失。我希望在 json 化时也保留这些字段,因此执行以下操作:
class foobar(namedtuple('f', 'foo, bar')):
__slots__ = ()
def __iter__(self):
yield self._asdict()
上面的内容按照我的预期序列化为 json,并且在我使用的其他地方(属性访问等)表现为 namedtuple
,除了在迭代它时出现非元组的结果(这对我来说很好用例)。
在保留字段名的情况下转换为json的“正确方法”是什么?
最佳答案
如果您要序列化的只是一个 namedtuple
,则可以使用其 _asdict()
方法(使用 Python >= 2.7)
>>> from collections import namedtuple
>>> import json
>>> FB = namedtuple("FB", ("foo", "bar"))
>>> fb = FB(123, 456)
>>> json.dumps(fb._asdict())
'{"foo": 123, "bar": 456}'
关于python - 将 Python namedtuple 序列化为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5906831/