在Django中:如何将字典对象序列化为json?

4 投票
3 回答
10393 浏览
提问于 2025-04-15 23:46

我遇到了一个非常简单的问题,

>>> from django.core import serializers
>>> serializers.serialize("json", {'a':1})
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/usr/lib/pymodules/python2.6/django/core/serializers/__init__.py", line 87, in serialize
    s.serialize(queryset, **options)
  File "/usr/lib/pymodules/python2.6/django/core/serializers/base.py", line 40, in serialize
    for field in obj._meta.local_fields:
AttributeError: 'str' object has no attribute '_meta'
>>> 

这个怎么做呢?

3 个回答

0

jsonsimplejson 这样的库在处理 Django 对象时并不是特别好用,因为你可以在视图中直接使用 django.core 提供的序列化工具:

from django.core import serializers


def json_for_model_instance(request, pk):       
    instance = YourModel.objects.get(pk=pk)
    serialized_instance = serializers.serialize('json', [instance, ])

    return HttpResponse(serialized_instance, content_type="application/json")
6
from django.utils import simplejson
data = simplejson.dumps({'a': 1})

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

14

另外,既然你似乎在使用Python 2.6,你可以直接使用json模块:

import json
data = json.dumps({'a': 1})

撰写回答