Python 自带Json处理日期格式出错

使用python自带的json,将数据转换为json数据时,datetime格式的数据会报错,出现如下错误提示:datetimeTypeError: datetime.datetime.now() is not JSON serializable。

这是因为python自带的json无法处理,只好重写构造json类,遇到日期特殊处理,其余的用内置的就行。
代码:

import json
import datetime  

class DateEncoder(json.JSONEncoder):
    def default(self, obj):
        if isinstance(obj, datetime.datetime):
            return obj.strftime(‘%Y-%m-%d %H:%M:%S‘)
        elif isinstance(obj, date):
            return obj.strftime("%Y-%m-%d")
        else:
            return json.JSONEncoder.default(self, obj) 

调用:

print(json.dumps(source_data, cls=DateEncoder)  )

原文地址:https://blog.51cto.com/alun51cto/2440393

时间: 2024-08-29 16:21:47

Python 自带Json处理日期格式出错的相关文章

Json 的日期格式转换成DateTime

JSON 的日期形式:"/Date(1242357713797+0800)/" , 下面我们就用以下C#的方法将他转换成DateTime类型: /// <summary> /// Json 的日期格式与.Net DateTime类型的转换/// </summary> /// <param name="jsonDate">Json 的日期,例如:/Date(928120800000+0800)/</param> ///

Jackson JSON对日期格式的解析设置

服务器端:采用Spring MVC3 + MyBatis3架构设计,使用Jackson JSON将Java对象转换成JSON格式: Spring:3.2.2.RELEASE MyBatis:3.2.1 mybatis-spring:1.2.0 前端:采用jQuery EasyUI框架,使用 jquery-json-2.4.js 将javascript对象转换成JSON格式: 交互方式:服务器端和前端采用json格式进行数据交互. 遇到问题:服务器端对Java对象序列化后,日期格式为一长串数字(如

struts2 json 输出日期格式不正确

struts2 输出json中 日期出现:2013-12-17T15:57:47 错误格式的数据 原因:struts2 json插件对日期的格式化有问题 解决方法:在实体类的日期的get方法上加注解:@JSON(format="yy-MM-dd HH:mm:ss") 例如: @JSON(format = "yy-MM-dd HH:mm:ss") public Date getFindtime() { return findtime; }

C# JSON序列化日期格式问题

默认序列化日期为1970至今的时间戳 需要在json.convert中做一些设置 //JavaScriptSerializer js = new JavaScriptSerializer(); IsoDateTimeConverter timeConverter = new IsoDateTimeConverter(); //这里使用自定义日期格式,如果不使用的话,默认是ISO8601格式 //timeConverter.DateTimeFormat = "yyyy'-'MM'-'dd' 'HH

spring Mvc json返回json的日期格式问题

(一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加jackson-mapper-asl <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version

springmvc--json--返回json的日期格式问题

(一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加jackson-mapper-asl 1 <dependency> 2 <groupId>org.codehaus.jackson</groupId> 3 <artifactId>jackson-mapper-asl</artifactId> 4 <

SpringMVC 返回json的日期格式的问题的解决方法

springMVC中josn的日期类型输出默认是时间戳,需要进行日期格式转换. 格式化输出json 方法1. 在实体类的getter方法上面添加@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") 就可以将json的日期格式化.需要导入的json的相关jar包 @JsonFromat存在于jackson-annotations-2.1.0.jar中. Maven项目需要添加的依赖: <!--

生成带星期的日期格式

今天遇到一个日期转换问题需要生成 如:2017-11-29 星期三 16:45 的日期格式的数据,所以记录一下. //例如输入:2017-11-29 16:30:00 则输出:2017-11-29 星期三 16:30 public String getDate(String string_date){ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat sd

Newtonsoft.Json 处理日期格式

Newtonsoft.Json.Converters.IsoDateTimeConverter iso = new Newtonsoft.Json.Converters.IsoDateTimeConverter(); iso.DateTimeFormat = "yyyy/M/d HH:mm:ss"; string listvm = JsonConvert.SerializeObject(listVM, Newtonsoft.Json.Formatting.Indented, iso);