В Django: Как сериализовать объект dict в json? - PullRequest
4 голосов
/ 10 июня 2010

У меня есть очень простая проблема,

>>> 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 ]

14 голосов
/ 10 июня 2010

Кроме того, поскольку вы, похоже, используете Python 2.6, вы можете просто использовать модуль json напрямую:

import json
data = json.dumps({'a': 1})
6 голосов
/ 10 июня 2010
from django.utils import simplejson
data = simplejson.dumps({'a': 1})
0 голосов
/ 05 июня 2014

Библиотеки типа json или simplejson не очень хороши для сериализации объектов 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...