如何反序列化保存到Django JSONField()中的日期

时间:2019-07-31 14:50:27

标签: django

我遇到了“ datetime.datetime not JSON serializable”错误,想要一个干净的Django解决方案

因此,我尝试使用DjangoJSONEncoder,但是在序列化之后我没有设法反序列化数据(我想将其存储在JSONField中)。我收到一个DeserializationError。我在做什么错了?

这是我到目前为止提出的内容:

from django.utils.timezone import localtime, now
from django.core.serializers.json import DjangoJSONEncoder
from django.core.serializers import deserialize

a = DjangoJSONEncoder().encode(localtime(now()))

print(a) # "2019-07-31T16:48:19.665+02:00"

b = deserialize("json",a)

print(b) # <generator object Deserializer at 0x0000006CD0F35A40>

for c in b :
    print(c) # django.core.serializers.base.DeserializationError

PS:使用Python 3.6.8和Django 2.2.3

编辑:我也尝试过:

django.core.serializers.json import Deserializer
b = Deserializer(a)
print(b) # <generator object Deserializer at 0x000000444E85F9E8>
for c in b :
    print(c) #django.core.serializers.base.DeserializationError

基本相同的结果

0 个答案:

没有答案