Jsonify自定义对象的列表

2024-10-01 09:21:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前有以下情况:

class MainError:
    def __init__(self, code, message, errorsList):
        self.code = code
        self.message = message
        # List of Error objects
        self.errorsList = errorsList

    def serialize(self):  
        return {           
        'mainErrorCode': self.code, 
        'message': self.message,
        'errors': self.errorsList         
        }


class Error:    
    def __init__(self, field, message):
        self.field = field
        self.message = message

所以我想以以下格式返回JSON

^{pr2}$

当前我收到错误:

TypeError: <errors.Error instance at 0x329b908> is not JSON serializable

我正在使用Flask'sJsonify。在

return jsonify(errors=mainError.serialize())

我猜是list引起了这个问题。有人能帮我解决这个问题吗?在

PS:在我的方法中可能还有其他一些明显的错误(我对Python=/还很陌生)

更新的解决方案

def serialize(self):  
     return {           
     'mainErrorCode': self.code, 
     'message': self.message,
     'errors': [error.serialize() for error in self.errorsList] 
     }

class Error:    
    def __init__(self, field, message):
        self.field = field
        self.message = message

    def serialize(self): 
        return {           
        'field': self.field, 
        'message': self.message
        }

Tags: selfjsonfieldmessagereturninitdef错误
1条回答
网友
1楼 · 发布于 2024-10-01 09:21:12

如错误所示,您有一个不可序列化的Error对象列表。所以让它们可以序列化:

class Error:    

    def __init__(self, field, message):
        self.field = field
        self.message = message

    def serialize(self):  
        return {           
            'field': self.field, 
            'message': self.message
        }

相关问题 更多 >