Python之dict(或对象)与json之间的互相转化
在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作。
在Python中自带json库。通过import json
导入。
在json模块有2个方法,
loads()
:将json数据转化成dict数据dumps()
:将dict数据转化成json数据load()
:读取json文件数据,转成dict数据dump()
:将dict数据转化成json数据后写入json文件
问题:Object of type 'datetime' is not JSON serializable
使用python自带的json,将数据转换为json数据时,datetime格式的数据报错:datetimeTypeError: datetime.datetime(2017, 3, 21, 2, 11, 21) is not JSON serializable。
解决办法:就是重写构造json类,遇到日期特殊处理,其余的用内置的就行。
class DateEncoder(json.JSONEncoder):
"""
解决dict 转json 时 datetime 转换失败
使用方法:json.dumps(data, cls=DateEncoder)
"""
def default(self, obj):
if isinstance(obj, datetime.datetime):
return obj.strftime("%Y-%m-%d %H:%M:%S")
else:
return json.JSONEncoder.default(self, obj)