Object of type Decimal is not JSON serializable(decimal类型的对象不可JSON序列化)

decimal类型的对象不可JSON序列化

我在用python和echarts写可视化的时候调用数据库里的数据,统计一组数据的平均值

sql ='select time, avg(money) from work where time = 2016 union select time,avg(money) from work where time = 2017'
cur.execute(sql)
see = cur.fetchall()

time = []
num = []
jsonData = {}
for data in see:
    time.append(data[0])
    num.append(data[1])
jsonData['time'] = time
jsonData['num'] = num
j = json.dumps(jsonData)

cur.close()
con.close()
return (j)

调用的时候一直报错
在这里插入图片描述
然后查了很多资料,也没明白是怎么回事,最后找到了一段代码,把它加上去后就可以序列化了

class DecimalEncoder(json.JSONEncoder):
        def default(self, o):
            if isinstance(o, decimal.Decimal):
                return float(o)
            super(DecimalEncoder, self).default(o)
 j = json.dumps(jsonData,cls=DecimalEncoder)#jsonData是结合上下文自己定义的
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值