[英]How to deserialize a django model object?
I am fairly new to python and transitioning from Java, so I'll use the Java terminologies as I need to know the equivalent python version of it. 我是python的新手,并且正在从Java过渡,因此我将使用Java术语,因为我需要知道它的等效python版本。
So I have a Django model as described below: 所以我有一个Django模型,如下所述:
class Order(models.Model) :
order_id = models.TextField(null=False, blank=False)
is_completed = models.BooleanField(null=False, blank=False, default=False)
Also I have a kafka broker to process these orders. 我也有一个卡夫卡经纪人来处理这些订单。 To push these into a kafka queue, I am transforming them into JSON objects as depicted below:
要将它们推送到kafka队列中,我将它们转换为JSON对象,如下所示:
from django.core import serializers
serialized_obj = serializers.serialize('json', [order])
print("Pushing to kafka topic ", "some_topic")
print(serialized_obj)
send_message("some_topic", serialized_obj)
Now I need this JSON object to be converted back to Django model object, in Java we have something called as Jackson which could have done the same for me, but I am not sure how to do this in Python3. 现在,我需要将此JSON对象转换回Django模型对象,在Java中,我们有一个称为Jackson的东西可以对我做同样的事情,但是我不确定如何在Python3中做到这一点。
I tried the below code snippet, it returned me an object of type <generator object Deserializer at 0x7fe000323bf8>
我尝试了下面的代码片段,它返回了一个
<generator object Deserializer at 0x7fe000323bf8>
类型的<generator object Deserializer at 0x7fe000323bf8>
# consumer.py
try:
print(json.loads(msg.value()))
print("---------------------------------")
obj = serializers.deserialize("json", msg.value())
print(obj)
except Exception as e:
import traceback
print(traceback.format_exc())
How can I achieve this in Python3? 如何在Python3中实现?
First to serialize the object do this: 首先对对象进行序列化:
from django.core import serializers
d = serializers.serialize('json', Order.objects.all()) # serialize all the objects in Order model
To deserialize the object from it 从对象反序列化
for obj in serializers.deserialize('json', d):
print(obj.object) ## return the django model class object
serializers.deserialize()
gives an Deserializedobject serializers.deserialize()
给出一个反序列化的对象
To get more details refer Django object deserialization 要获取更多详细信息,请参阅Django对象反序列化
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.