Zai*_*eed 15 python json numpy python-3.x
我正在尝试使用布尔格式的值之一将字典写入 json 文件。当我尝试运行我的代码时出现以下错误。
raise TypeError(f'Object of type {o. class . name } ' TypeError: object of type bool_ is not JSON serializable
为此,我目前正在使用 Python。
Eri*_*ort 26
可能是因为这个问题(或类似的问题):
import numpy as np
import json
json.dumps({"X": np.int32(5) > 5})
Run Code Online (Sandbox Code Playgroud)
类型错误:“bool_”类型的对象不是 JSON 可序列化的
问题是你最终得到的是 typebool_而不是bool.
调用bool()错误类型的任何值都可以解决您的问题(假设您的版本bool_与 numpy 的行为类似:
json.dumps({"X": bool(np.int32(5) > 5)})
Run Code Online (Sandbox Code Playgroud)
'{"X": 假}'
如果您有多个bool_键或嵌套结构,这将转换bool_包括深度嵌套值在内的所有字段(如果有):
import json
class CustomJSONizer(json.JSONEncoder):
def default(self, obj):
return super().encode(bool(obj)) \
if isinstance(obj, np.bool_) \
else super().default(obj)
Run Code Online (Sandbox Code Playgroud)
然后转换对象/字典:
json.dumps(d, cls=CustomJSONizer)
Run Code Online (Sandbox Code Playgroud)