【发布时间】:2014-10-05 01:16:12
【问题描述】:
默认序列化器实现:
class Serializer(base.Serializer):
"""
Serializes a QuerySet to basic Python objects.
"""
internal_use_only = True
def start_serialization(self):
self._current = None
self.objects = []
def end_serialization(self):
pass
def start_object(self, obj):
self._current = {}
def end_object(self, obj):
self.objects.append({
"model" : smart_unicode(obj._meta),
"pk" : smart_unicode(obj._get_pk_val(), strings_only=True),
"fields" : self._current
})
self._current = None
数据输出格式:
[{“pk”:2,“model”:“android.job”,“fields”:{“status”:“lol”,“customer”:“HAHA”}},{“pk”:3 ,“模型”:“android.job”,“字段”:{“状态”:“lul”,“客户”:“BWAHA”}}]
我的覆盖:
class MySerialiser(Serializer):
def start_serialization(self):
self._current = None
self.objects = []
def end_serialization(self):
pass
def start_object(self, obj):
self._current = {}
def end_object(self, obj):
self._current['id'] = obj._get_pk_val()
self.objects.append(self._current)
输出格式:
{"status": "lol", "customer": "HAHA", id:2L}{"status": "lul", "customer": "BWAHA", id:3L}
我需要什么:
[{"status": "lol", "customer": "HAHA", id:2L}, {"status": "lul", "customer": "BWAHA", id:3L}]
注意 - 这是在 Django 中 - 所有这些都是字符串类型!不要假设它们是列表/字典
【问题讨论】:
-
看来你让这个过于复杂了。 See this question and answer
标签: python json django serialization