我想使用simplejson序列化Django模型。Django的序列化器不支持字典…,而simplejson不支持Django
Querysets。这是一个难题。
在该模型中,有一个具有“外键”赞助商级别的赞助商,我试图将属于某个赞助商级别的所有赞助商分组在一起。这是生成列表的代码:
from django.shortcuts import get_list_or_404
from special_event.models import Sponsor, SponsorLevel
sponsor_dict = {}
roadie_sponsors = get_list_or_404(Sponsor, level__category = SponsorLevel.ROADIE_CHOICE)
for item in roadie_sponsors:
try:
sponsor_dict[item.level.name].append(item)
except KeyError:
sponsor_dict[item.level.name] = [item]
这是sponsor_dict
“制造”后的样子
{
'Fan': [<Sponsor: Fan Sponsor>],
'VIP': [<Sponsor: VIP Sponsor>],
'Groupie': [<Sponsor: Groupie Sponsor>],
'Silver': [<Sponsor: Silver Sponsor>],
'Bronze': [<Sponsor: Another Bronze Sponsor>, <Sponsor: Bronze Sponsor>]
}
我只在每个级别添加了一个赞助商,除了铜牌,只是为了展示其工作原理。我要做的就是将它“全部”放入JSON,以便jQuery可以轻松解释它。Django的其他序列化程序(例如XML或YAML)可以完成此操作吗?我可以“扩展”
Django JSON序列化程序来处理字典,还是可以“扩展” simplejson来处理Django QuerySet对象?
我会继续扩展 simplejson 。基本上,您想在JSON编码器遇到QuerySet时插入django的序列化。您可以使用类似:
from json import dumps, loads, JSONEncoder
from django.core.serializers import serialize
from django.db.models.query import QuerySet
from django.utils.functional import curry
class DjangoJSONEncoder(JSONEncoder):
def default(self, obj):
if isinstance(obj, QuerySet):
# `default` must return a python serializable
# structure, the easiest way is to load the JSON
# string produced by `serialize` and return it
return loads(serialize('json', obj))
return JSONEncoder.default(self,obj)
# partial function, we can now use dumps(my_dict) instead
# of dumps(my_dict, cls=DjangoJSONEncoder)
dumps = curry(dumps, cls=DjangoJSONEncoder)
有关default
method的更多信息,请查看simplejson文档。将其放在python模块中,然后导入dumps
,您就可以开始了。但是请注意,此功能将仅帮助您序列化QuerySet
实例,而不能Model
直接序列化实例。
问题内容: 我有一个像这样的简单容器类的结构(在伪红宝石中): 有没有简单的方法可以在Ruby中将其反序列化为JSON?还是应该像本例一样为每个类制作嵌套的序列化方法? 编辑: 在我的特定情况下,我想将一些JSON数据发布到运行Ruby的服务器上,该服务器将提取数据并采取相应的措施。 JSON的发送者不一定是Ruby进程,而可能是其他系统的后端。(尽管在我的测试工具中是Ruby)。 因此,我不需要
问题内容: 我有一个Python ,其中包含带有和方法的对象,以确保集合中没有重复项。 我需要对该结果进行json编码,但是即使将一个空值传递给该方法也会引发。 我知道我可以为具有自定义方法的类创建扩展,但是我什至不知道从哪里开始进行转换。我是否应该使用默认方法中的值创建字典,然后返回该方法的编码?理想情况下,我想使默认方法能够处理原始编码器阻塞的所有数据类型(我将Mongo用作数据源,所以日期似
我想使用杰克逊2.13.3将数据结构序列化为JSON。我创建了一个简化的示例数据结构来显示所需的序列化是什么。 数据结构由一个主组成,其中包含一个的列表。元素之间有一些链接。 在示例中,我创建了元素的以下链接结构: 目标是序列化通过链接信息的ID表示链接数据。元素的完全序列化应该只发生在容器的顶级列表中。这与jackson在序列化过程中遇到元素的顺序不一致。 我想得到以下输出:
问题内容: 我有一个使用序列化列的模型: 有没有办法使此序列化使用JSON而不是YAML? 问题答案: 在Rails 3.1中,您可以 希望能有所帮助
问题内容: 我有以下JSON: 当日期每次更改时,我该如何解析呢?我必须使用Jackson进行解析。 问题答案: 当您具有 动态键时 ,可以使用。键的类型和值取决于您的需要。 最简单的方法是。您需要为此: 假设您的密钥是 有效日期 ,则可以使用。 需要以下依赖项: 然后您可以拥有: 最后,您可以将动态键的值映射到Java类。让我们称之为: 然后您可以拥有:
我一直在使用骆驼泉DSL中的json、dataFormats和马歇尔/un马歇尔标签,如以下url和applicationContext.xml.的片段所述 http://camel.apache.org/json.html 我想将我的joda DateTime对象序列化为long,如下所述: http://wiki.fasterxml.com/JacksonFAQDateHandling 我知道