我有一个想要读取的 json 字符串,将其转换为我可以操作的对象,然后将其转换回 json 字符串。
我正在使用 python 3.10 数据类,该类的属性之一是另一个类(mySubClass)。当我打电话时 json.loads(myClass),我收到以下错误:TypeError: Object of type mySubClass is not JSON serializable.
有没有办法可以用它需要的一切(包括mySubClass )实例化数据类myClass,然后进行“初始化后操作”,将myClass.mySubClass转换为简单的 json str ?或者我以错误的方式处理这个问题?
我最初的目标是实现以下目标:
import json
from dataclasses import dataclass
@dataclass
mySubClass:
sub_item1: str
sub_item2: str
@dataclass
myClass:
item1: str
item2: mySubClass()
...
convert_new_jsonStr_toObj = json.loads(received_json_str, object_hook=lambda d: SimpleNamespace(**d))
...
#: Get new values/do "stuff" to the received json string
myClass_to_jsonStr = json.dumps(myClass(item1=convert_new_jsonStr_toObj.item1, item2=mySubClass(sub_item1=convert_new_jsonStr_toObj.sub_item1, sub_item2=convert_new_jsonStr_toObj.sub_item2)))
...
#: Final json will look …Run Code Online (Sandbox Code Playgroud)