如何删除链映射方法以另存为 JSON 文件



我正在对字典数据使用 ChainMap 方法,我试图将(转储(保存(转储(为 JSON 文件,但它不起作用,消息是

"类型错误:类型为'ChainMap'的对象不可序列化">

例:

t = [ChainMap({'a': 'ITT002', 'b': {'c': '2', 'd': '2', 'e': '2'}, 'f': '2'}, {'g': {'h1': {'i': '22', 'j': '2', 'k': '2', 'l': '2', 'n': '2'}}})]

如果我有数据t,有什么方法可以保存在 JSON 文件中吗?

祝你美好的一天堆叠兄弟!

Chainmap将多个字典分组并返回view。要转储它,您必须将其转换为字典。

下面是一个最小示例:

import collections
import json
a = {'a': 'A', 'c': 'C'}
b = {'b': 'B', 'c': 'D'}
m = collections.ChainMap(a, b)
print(json.dumps(dict(m)))
>>{"b": "B", "a": "A", "c": "C"}

这是您的具体示例:您必须访问listindex才能访问ChainMap对象:

t = [collections.ChainMap({'a': 'ITT002', 'b': {'c': '2', 'd': '2', 'e': '2'}, 'f': '2'}, {'g': {'h1': {'i': '22', 'j': '2', 'k': '2', 'l': '2', 'n': '2'}}})]
print(json.dumps(dict(t[0])))
>>{"f": "2", "g": {"h1": {"i": "22", "j": "2", "k": "2", "l": "2", "n": "2"}}, "b": {"c": "2", "d": "2", "e": "2"}, "a": "ITT002"}

最新更新