将datetime序列化为JSON

2024-03-28 10:01:31 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从Django格式的Mysql数据库中获取JSON格式的DateTimeField?我在执行代码Date.time cannot be serialized in json(数据包含很多值)时出错:

data = json.dumps(data)

但这是通过添加

ALL_data = serializers.serialize("json", data, ensure_ascii=False)

但是现在我得到了'str' object has no attribute '_meta'


Tags: django代码in数据库jsondatadatetime
3条回答

每当您看到形式为... object has no attribute '_meta'的错误消息时,这是一个明确的标志,表明某个方法需要查询集,但得到了其他东西。在这种特殊情况下,serializers.serialize的第二个参数必须有一个queryset。你不能使用列表、字典等,绝对不能使用字符串

其中设置了data。检查以确保为其分配了一个真正的查询集。如果仍然存在问题,您可能还希望发布更多代码。很难断章取义地诊断问题

DjangoJSONEncoder解决了我的问题

import json
from django.core.serializers.json import DjangoJSONEncoder
data = json.dumps(data, cls=DjangoJSONEncoder)

Django的序列化程序只用于查询集;您必须找到不同的方法来解决您的问题,例如首先将datetime转换为其他内容

相关问题 更多 >