Jav*_*Jav 5 python serialization namedtuple
嵌套 NamedTuples 的 JSON 序列化非常简单:
\nimport json\nfrom typing import NamedTuple\n\nclass A(NamedTuple):\n a: int\nclass B(NamedTuple):\n a: A\n b: str\ns = json.dumps(B(A(42), "auie"))\nprint(s) # outputs the following string: "[[42], 'auie']"\nRun Code Online (Sandbox Code Playgroud)\n另一方面,JSON 反序列化需要一些工作\xe2\x80\xa6 最好的方法是什么?我想过使用递归函数,但我希望有一个更干净的实现\xe2\x80\xa6
\ndef deserialize(T,l):\n for i, k in enumerate(T._field_types):\n if hasattr(T._field_types[k], "_field_types"): # I'm open to a more robust check\n l[i] = deserialize(T._field_types[k], l[i])\n return T(*l)\n \nprint(deserialize(B, json.loads(s))) # prints B(a=A(a=42), b='auie')\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1616 次 |
| 最近记录: |