Джанго выбрасывает "[123L, 123L] не сериализуемо в формате JSON" - PullRequest
0 голосов
/ 23 января 2012

в моем коде у меня есть:

json.dumps({'foo': {'bar': [123L, 123L]}})

длинные целые числа являются первичными ключами. эта строка по какой-то причине выдает ошибку:

"[123L, 123L] не поддерживает сериализацию в формате JSON"

Когда я пытаюсь выполнить его в оболочке python manage.py:

json.dumps({'foo': {'bar': [123L, 123L]}})

отлично работает.

Может кто-нибудь сказать мне, что происходит?

точная ошибка Джанго:

Тип исключения: ошибка типа Значение исключения: [123L] не поддерживает сериализацию в формате JSON Расположение исключения: /usr/lib/python2.7/dist-packages/simplejson/encoder.py по умолчанию, строка 192

1 Ответ

5 голосов
/ 23 января 2012

Это работает для меня:

from django.db.models.query import ValuesListQuerySet

def default(o):
    if isinstance(o, ValuesListQuerySet):
        return list(o)
    raise TypeError(repr(o) + " is not JSON serializable")

json.dumps(valueListObject, default=default)
...