Django的新手 - 如何在django中序列化原始查询集

时间:2017-05-05 12:30:20

标签: javascript python json django

我是Django框架的新手,并致力于让我的第一个应用程序运行。当我尝试将查询集从视图传递到模板时遇到以下问题。

我的view.py:

with connection.cursor() as cursor:
        cursor.execute("SELECT TOP(5) * FROM xxx WHERE sbu = %s", [sbu])
        def dictfetchall(cursor):
            columns = [col[0] for col in cursor.description]
            return [dict(zip(columns,row)) for row in cursor.fetchall()]

 results = dictfetchall(cursor)
 class DecimalEncoder(json.JSONEncoder):
            def _iterencode(self, o, markers=None):
                if isinstance(o, decimal.Decimal):
                    return (str(o) for o in [o])
                    return super(DecimalEncoder, self)._iterencode(o, markers)

 json_result = json.dumps(data, cls=DecimalEncoder)

我最终得到以下错误:

十进制('28 .80')不是JSON可序列化的

有什么建议吗?我错过了一步吗?我在查询集中有很多小数值。

0 个答案:

没有答案