TypeError: Object of type Decimal is not JSON serializable
当我运行postman api
时,我得到了上面的错误,因为sales_qty
是十进制的,我不知道如何在for
循环中解析decimal
并将其作为json返回
from flask import Flask, jsonify
import decimal,json
result= [('V_M_001', 'KITE', 'Napkin', 1, 2, 12, 0, Decimal('0'), Decimal('0'), Decimal('0'), Decimal('0')),
('V_M_001', 'KITE', 'Napkin', 2, 4, 34, 5, Decimal('1'), Decimal('4'), Decimal('0'), Decimal('0'))]
def fun():
for i in result:
data_all.append({
"machine_name":i.machine_name,
"location":i.location,
"item_name":i.item_name,
"row_no":i.row_no,
"require_minimum_stk_qty":i.require_minimum_stk_qty,
"capacity":i.capacity,
"stock_qty":i.stock_qty,
"sales_qty":i.sales_qty,
"available_qty":i.available_qty,
"sales_day_qty":i.sales_day_qty,
"sales_week_qty":i.sales_week_qty
})
return jsonify(data_all)
fun()
字符串
输出:TypeError: Object of type Decimal is not JSON serializable
3条答案
按热度按时间1tu0hz3e1#
使用json.dump和cls参数,我相信当json模块不知道如何转换时,它会调用默认函数。
字符串
lvjbypge2#
字符串
(在这里找到Flask Jsonify Custom JsonEncoder | Lua Software Code)
fnvucqvd3#
您可以将
json.dumps()
与默认编码器str()
一起使用。字符串