gpt4 book ai didi

python - 如何将字典中的嵌套 numpy 数组转换为 JSON?

转载 作者:行者123 更新时间:2023-12-04 07:44:07 29 4
gpt4 key购买 nike

我正在解析嵌套字典,它们具有不同程度的嵌套(字典中的字典中的字典等)我事先不知道字典嵌套的程度。
问题是,某些字典值是 numpy.ndarrays .当我尝试写字典时 my_dictionary到 JSON 与

with open(my_dictionary, 'w') as f:
json.dump(my_dictionary, f, indent=4)
我会收到以下错误:
TypeError: Object of type ndarray is not JSON serializable
当然,克服这个问题的一种方法是简单地转换所有 numpy.ndarray值到一个列表中 .tolist() .
但是,鉴于我不知道字典是如何嵌套的,我如何通过算法检查任何嵌套字典的所有值并转换 ndarray列出?
或者有没有其他方法可以克服这个错误?

最佳答案

您可以定制json.JSONEncoder .例如:

import json


class MyEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.ndarray):
return obj.tolist()
return json.JSONEncoder.default(self, obj)


data = {"data": [{"obj": np.array([1, 2, 3])}]}

print(json.dumps(data, cls=MyEncoder, indent=4))
打印:
{
"data": [
{
"obj": [
1,
2,
3
]
}
]
}

关于python - 如何将字典中的嵌套 numpy 数组转换为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67289440/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com