django使用更快的JSON序列化器替换字典

时间:2015-12-15 14:45:36

标签: python json django dictionary

我使用Django原始查询集从数据库中选择数据。

在将此json序列化数据作为API返回到django rest_framework之前,我需要在字段上进行翻译(通过使用ugettext)

但是我有优化问题,因为我发现手动将字典附加到列表需要很长时间,特别是如果我有很多数据库行。

经过一番搜索,我找到了一个声称可以更快地序列化JSON的库ujson。但是我努力使用它,因为我需要这个原始查询来返回翻译的字段名称(水果)

任何人都知道如何用其他更快的方法替换这个字典方法来序列化JSON数据?

all_fruits = []
activate ("en")

raw_query = MyObject.objects.raw(" select id, fruits from my_table ")

for each_name in raw_query:
    json_obj = dict( id = each_name.id,
                     fruits= ugettext(each_name.fruits)
                   )
    all_fruits.append(json_obj)

1 个答案:

答案 0 :(得分:0)

只有当你真的没有其他解决方案时才能避免原始SQL, Django QuerySet 为数据库查询提供了非常棒的全功能API,以下解决方案可以满足您的需求:

all_fruits = []
activate ("en")

my_object_list = MyObject.objects.all()

for obj in my_object_list.values():
    all_fruits.append({"id":obj.id, "fruits" : ugettext(obj.fruits)})