【发布时间】:2015-09-21 01:38:03
【问题描述】:
我正在运行一个返回小数列表的 SQL 查询。当我尝试将其转换为 JSON 时,出现类型错误。
查询:
res = db.execute("""
SELECT CAST ((SUM(r.SalesVolume)/1000.0) AS decimal(6,1))
FROM RawData r
INNER JOIN Product p
ON r.ProductId = p.ProductId
INNER JOIN Calendar c
ON r.DayId = c.DayId
WHERE c.WeekCodeInYear BETWEEN 1 AND 12
AND
c.YearId = 2014
GROUP BY c.WeekCodeInYear """)
结果列表:
[Decimal('34.3'), Decimal('50.9'), Decimal('31.5'), Decimal('23.3'), Decimal('19
.7'), Decimal('56.9'), Decimal('43.8'), Decimal('35.2'), Decimal('29.2'), Decima
l('43.7'), Decimal('42.6'), Decimal('23.4')]
代码:
for row in res:
testlist.append (row[0])
print testlist
list = json.dumps(testlist)
我得到了Unable to serialize error
上网查了一下,没有太大帮助。
请注意,最终列表将作为图表的输入数据。
【问题讨论】:
-
Decimal object不是 json 可序列化的。向我们展示print testlist的执行结果 -
@LittleQ 上面的结果列表是
testlist的执行 -
明白你的意思。 BTW,
list是内置类型,最好不要用作变量名