Python 杂记(2) decimal类型序列化
在对结构化数据使用 json.dumps(data) 时, 遇到如下报错
TypeError: Decimal('3.40') is not JSON serializable
decimal类型无法直接序列化, 解决方案如下
定义
# from OpenStack
import decimal
import json
class DecimalJSONEncoder(json.JSONEncoder):
"""Wrapper class to handle decimal.Decimal objects in json.dumps()."""
def default(self, obj):
if isinstance(obj, decimal.Decimal):
return float(obj)
return super(DecimalJSONEncoder, self).default(obj)
使用
desc = json.dumps(frame['desc'], cls=DecimalJSONEncoder)
(☞゚ヮ゚)☞ ☜(゚ヮ゚☜))