问题描述
我正在寻找一种将 JSON 字典转换为对象的简单方法,我找到了这个类:
# Turns a dictionary into a class
class Dict2Class(object):
def __init__(self,my_dict):
for key in my_dict:
setattr(self,key,my_dict[key])
例如:
from types import SimpleNamespace
with open(file_name) as f:
json_object = json.load(f)
# create a json object
config = json.loads(json.dumps(json_object),object_hook=lambda d: SimpleNamespace(**d))
# Build class object for missing values attributes
missing_values_dict = {
"missing_rate": 0.8,"missing_type": "MNAR"
}
missing_values_object = Dict2Class(missing_values_dict)
config.missing_value = missing_values_object
然后我想将新对象保存为 JSON 字符串。我定义了一个自定义的 JSONEncoder :
# subclass JSONEncoder
class Dict2ClassEncoder(JSONEncoder):
def default(self,o):
return o.__dict__
json_str = json.dumps(config,indent=4,cls=Dict2ClassEncoder)
这对我很有用。
希望能帮到你。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)