如何将Django模型对象序列化为JSON实例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1593个文字,预计阅读时间需要7分钟。
提出序列化与反序列化,常会想到+JSON+、+XML+。在J2EE开发中,这是常用技术,类似一个java class与xml之间的序列化与反序列化,我们可以通过+xstream+来实现,如果是与JSON之间的转换。
提到序列化与反序列化,通常会想到 json ,xml .在J2EE的开发中,这是很常用的技术,比如一个java class与xml之间的序列化与反序列化,我们可以通过 xstream来实现,如果是与json之间的转换,我们可以通过 gson.jar或者jsonlib.jar 来实现。方法很多,也是常见的方法。
但在python 中,我们常用的是json 的序列化,python2.7 已经包含了json package,这个也是从simplejson 基础上改变而来。这个json 包主要提供了dump,load 来实现dict 与 字符串之间的序列化与反序列化,这很方便的可以完成,可以参考这篇文章python json。但现在的问题是,这个json包不能序列化 django 的models 里面的对象的实例。
经过分析,网络搜索,发现有如下解决方案.
利用 from django.core import serializers 的方法实现
from django.core import serializers data = serializers.serialize("json", SomeModel.objects.all()) data1 = serializers.serialize("json", SomeModel.objects.filter(myfield1=myvalue))
上面两个是没有问题的,因为序列化的对象是 Queryset, 因此是成功的。
本文共计1593个文字,预计阅读时间需要7分钟。
提出序列化与反序列化,常会想到+JSON+、+XML+。在J2EE开发中,这是常用技术,类似一个java class与xml之间的序列化与反序列化,我们可以通过+xstream+来实现,如果是与JSON之间的转换。
提到序列化与反序列化,通常会想到 json ,xml .在J2EE的开发中,这是很常用的技术,比如一个java class与xml之间的序列化与反序列化,我们可以通过 xstream来实现,如果是与json之间的转换,我们可以通过 gson.jar或者jsonlib.jar 来实现。方法很多,也是常见的方法。
但在python 中,我们常用的是json 的序列化,python2.7 已经包含了json package,这个也是从simplejson 基础上改变而来。这个json 包主要提供了dump,load 来实现dict 与 字符串之间的序列化与反序列化,这很方便的可以完成,可以参考这篇文章python json。但现在的问题是,这个json包不能序列化 django 的models 里面的对象的实例。
经过分析,网络搜索,发现有如下解决方案.
利用 from django.core import serializers 的方法实现
from django.core import serializers data = serializers.serialize("json", SomeModel.objects.all()) data1 = serializers.serialize("json", SomeModel.objects.filter(myfield1=myvalue))
上面两个是没有问题的,因为序列化的对象是 Queryset, 因此是成功的。

