对象不可 json 序列化

在 python 中编码时,我收到一个错误:“myObject 类型的对象不是 JSON 可序列化的”


我尝试使用我在其他问题中看到的一些解决方案,但是我没有发现我的代码和那些问题中的代码有很多相似之处,因此我发现很难在我的代码中调整解决方案。


我的脚本的一部分如下。错误发生在第一个块的最后一行:


import json

import os

from my_object import myObject


for a in A_set:

    if os.path.isfile(filename):

        with open(filename, 'r') as f:

            json_data = json.load(f)

        object_name = myObject.from_json(json_data)

    else:

        object_name = myObject(a)

        object_name.property_A = property_A

        object_name.property_C = []


    object_name.property_C_add_elements(var)

    with open(filename, 'w') as f:

        json.dump(object_name.to_json(), f)

在另一个 python 文件中定义了“myObject”类,其中还有方法“to_json()”,我在产生错误的代码行中调用它。


class myObject:

    def __init__(self, name):

        self.name = name

        self.property_A = property_A

        self.property_B = property_B

        self.property_C = []


    def property_C_add_elements(self, var):  

        self.property_C.append(var)


    def to_json(self):

        return {

            'Name': self.name,

            'property A': self.property_A,

            'property B': self.property_B,

            'property C': self.property_C

        }


    @classmethod

    def from_json(cls, jason_data):

        object_name = myObject(jason_data['property A'])

        property_B = myObject(jason_data['property B'])

        c_list = []

        for var in jason_data['property C']:

            c_list.append(myObject(var))


        object_name.property_B = property_B

        object_name.property_C = c_list


        return object_name

如果我能找到该问题的解决方案,我会很高兴。提前致谢。


MM们
浏览 204回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python