我从数据库中提取一个十进制值的总和.我正在尝试在JSON结果中使用该值
json.dumps( { 'sum': amount } ) #where amount is my Decimal
Run Code Online (Sandbox Code Playgroud)
Django无法序列化Decimal.我可以将它转换为字符串,但我想在JSON中使用数字类型.如果我尝试将其转换为float最终超过2位小数.
如果可能,需要发生什么才能获得如下结果?
{ 'sum': 500.50 }
Run Code Online (Sandbox Code Playgroud)
Jer*_*rub 11
你可以做的是扩展JSONDecoder类以提供Decimal类型的自定义序列化器,类似于本文档中的示例:http://docs.python.org/py3k/library/json.html
>>> import json
>>> class DecimalEncoder(json.JSONEncoder):
... def default(self, obj):
... if isinstance(obj, Decimal):
... return "%.2f" % obj
... return json.JSONEncoder.default(self, obj)
...
Run Code Online (Sandbox Code Playgroud)
这是一个如何做到的非工作的例子,希望对你来说是一个很好的起点.