1、问题
a、datetime.datetime File "/usr/local/lib/python3.4/json/encoder.py", line 173, in default raise TypeError(repr(o) + " is not JSON serializable") TypeError: datetime.datetime(2017, 8, 7, 16, 19, 48) is not JSON serializable b、decimal.Decimal File "/usr/local/lib/python3.4/json/encoder.py", line 173, in default raise TypeError(repr(o) + " is not JSON serializable") TypeError: Decimal('984.000000') is not JSON serializable
2、解决办法
#使用自定义函数对特定类型进行序列化 a、datetime.datetime class DatetimeEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, datetime.datetime): return float(o) super(DatetimeEncoder, self).default(o) encode_data = json.dumps(data,cls=DatetimeEncoder) b、decimal.Decimal class DecimalEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, decimal.Decimal): return float(o) super(DecimalEncoder, self).default(o) encode_data = json.dumps(data,cls=DecimalEncoder)