浏览器家园

TAG标签|网站导航| 手机访问:m.liulanqi.com

当前位置:首页开发学院Python → django 使用json.dumps转换queryset的datatime报错问题解决

django 使用json.dumps转换queryset的datatime报错问题解决

时间:2023-06-27 12:53:08来源:整理作者:浏览器知识手机版

最近在使用django做项目的时候想使用ajax来实现前后台数据的交互,但是在将数据库查询结果转换成json数据时,遇到时间格式的数据转换遇到问题,无法正确的进行转换,具体如下:

转换成json时使用的方法如下:

json.dumps(MyModel.objects.values())

报错信息如下:

Exception Value: [{'date': datetime.date(2012, 5, 26), 'time': datetime.time(0, 42, 27)}] is not JSON serializable

最后经过google(渣度无解,找到一些方案,但都不太好,而且都是转载来转载去的……)找到的解决方案如下:

from django.core import serializers

from django.core.serializers.json import DjangoJSONEncoder

import json

temp_output = serializers.serialize('python', MyModel.objects.all())

output = json.dumps(temp_output, cls=DjangoJSONEncoder)

ok,搞定。现在万事大吉。。。。but,中文字符转换后乱码?????别着急,只需要在执行json.dumps方法的时候将ensure_ascii设定为False即可,即将下面这行代码进行修改:

temp_output = serializers.serialize('python', MyModel.objects.all())

修改后如下:

temp_output = serializers.serialize('python', MyModel.objects.all(), ensure_ascii=False)

注意如果在查询的时候使用了values,则直接使用:

json.dumps(list(tmp_output), ensure_ascii=False, cls=DjangoJSONEncoder)

 

相关文章

  • 看小说的阅读浏览器,重新定义我的世界

    以看小说的阅读浏览器,重新定义我的世界1.介绍在现代社会中,人们都喜欢使用浏览器来浏览新闻、网页、视频等内容。但是,我们是否尝试过用浏览器的方式来浏览小说呢?这种方式不仅可以更好地享受小说的阅读体验,甚至可以重新定义我们的世界。2.以小说为中心的阅读方式传统的阅读方式通常是拿起一本书,一口气读完。但是在浏览器中,我们可以更加轻松地将小说分成多个章节,逐步阅读。这种以小说为中心的阅读方式,可以更好地把握小说的情节和节奏,享受小说的深度和广度。3.个性化的阅读设置在传统的阅读方式中,我们不能调整字体大小、颜色..
  • 迅雷9怎么把浏览器去掉,迅雷9教程:如何去掉浏览器

    为什么要去掉迅雷9浏览器迅雷9自带浏览器是一款集成了浏览器和下载功能的软件,但是很多用户并不需要迅雷的浏览器,或者已经有了自己的常用浏览器,使用迅雷自带的浏览器会使系统变得更加臃肿,降低电脑运行速度。因此,很多用户希望去掉迅雷9自带的浏览器,只保留下载功能。2.去掉迅雷9浏览器的方法以下是去掉迅雷9浏览器的步骤:打开迅雷9软件,点击左上角的“迅雷”,选择“选项”。在选项窗口中选择“高级”选项卡。找到“浏览器设置”一栏,将“启用迅雷浏览器”前面的勾选取消。点击“确定”按钮保存设置,重启迅雷9软件即可。3..

Copyright 2019-2029 www.liulanqi.com 【浏览器家园】 版权所有

浏览器家园_下载浏览器就到浏览器家园 | 专注MAC浏览器和Windows浏览器下载和使用介绍

声明: 所有软件和文章收集整理来自互联网 如有异议 请与本站联系 本站为非赢利性网站 不接受任何赞助和广告