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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...