我正在对字典数据使用 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"}
这是您的具体示例:您必须访问list
的index
才能访问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"}