2012-01-23 2 views
0

в моем коде я есть:Джанго бросает «[123l, 123l] не является JSON сериализации»

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

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

"[123l, 123l] не JSON сериализации"

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

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

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

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

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

Тип

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

+0

Ну для начала код, который вы вывесили отсутствует закрывающая скобка (''}) ... – user268396

+0

Можете ли вы показать нам (маленький) полный код, который выдает excep Тион? –

+0

попробовать лить в 123L к int –

ответ

5

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

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) 
Смежные вопросы