将 Python Dict 转换为 Object 并在 JSON Python3.7 中解码的简单方法

问题描述

我正在寻找一种将 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))

然后我想根据 JSON 字典向这个对象添加新的嵌套属性

# 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 (将#修改为@)