Python类对象的JSON序列化处理

最近在使用Django做简单的web时,需要ajax发送异步请求,返回的数据为json格式的。

但是需要将类似于自定义类转换为json,遇到了一些麻烦,这里先给出一些简单的代码

import json
class Person(object):
    def __init__(self, name='', age=0, gender='男'):
        self.name = name
        self.age = age
        self.gender = gender

persons = [Person('John', 18, '男'), Person('Alice', 16, '女'), Person('小明', 17, '男')]

jsons = json.dumps(persons)
上述序列化会出现错误TypeError: Object of type 'Person' is not JSON serializable

这是因为Person对象不能序列化,原因可以查看原文链接

解决方法是自定义Person的序列化方式,即

def obj_2_json(obj):
    return {
        "name": obj.name,
        "age": obj.age,
        "gender": obj.gender
    }

jsons = json.dumps(persons, default=obj_2_json)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值