随笔 - 105  文章 - 0  评论 - 0  阅读 - 40744

视图函数中的序列化

方式一

1
2
3
from django.core import serializers  # 导入模块
res = serializers.serialize('json', hosts_list)
return HttpResponse(res)

方式二

1
2
3
4
res = hosts_list.values('hostname', 'ip')
import json
res = json.dumps(list(res))  # 注意加上list函数
return HttpResponse(res)

但这种方法不能序列化如时间等数据

方式三

自定义序列化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from datetime import datetime
from datetime import date
import json
 
 
# Create your tests here.
 
 
class CustomEncoder(json.JSONEncoder):  # 重写自定义序列化的方法
    def default(self, field):
        if isinstance(field, datetime):
            return field.strftime('%Y-%m-%d %H:%M:%S')
        elif isinstance(field, date):
            return field.strftime('%Y-%m-%d')
        else:
            return json.JSONEncoder(self, field)
 
 
d = {
    'k1': 'v1',
    'k2': 'v2',
    'datetime': datetime.now(),
}
res = json.dumps(d, cls=CustomEncoder)  # 把重写的序列化方法传入到参数cls
print(res)
posted on   Treelight  阅读(187)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示