【发布时间】:2012-06-01 15:44:04
【问题描述】:
我尝试通过以下方式将QuerySet 或Dict 对象与datetime.date 对象序列化:
方式#1:
json.dumps(MyModel.objects.values())
引发错误:
异常值:[{'date': datetime.date(2012, 5, 26), 'time': datetime.time(0, 42, 27)}] 不是 JSON 可序列化的
方式#2:
json.dumps(MyModel.objects.values(), cls=DjangoJSONEncoder)
也会引发错误:
异常值:[{'date': datetime.date(2012, 5, 26), 'time': datetime.time(0, 42, 27)}] 不是 JSON 可序列化的
方式#3:
json.dumps(MyModel.objects.all(), cls=DjangoJSONEncoder)
异常值:[
方式#4:
serializers.serialize('json', MyModel.objects.all())
引发错误:
异常值:“str”对象没有属性“_meta”
如何在 Django 中将带有日期时间字段的对象序列化为 JSON?
【问题讨论】:
-
json.dumps(value, cls=DjangoJSONEncoder)正在为我工作,value从您在#2 中遇到的异常中复制。您能否提供更多信息,Python 和 Django 版本可能相关? (我用 Python 2.7.1 和 Django 1.3.1 对此进行了测试) -
@georgebrock 抱歉,这种方法确实有效。我的代码中还有一个错误。
标签: django serialization django-models json