2012-04-18 3 views
4

У меня есть атрибут, который я храню как объект JSON, например, так:Google AppEngine, NDB, и Json

content = ndb.JsonProperty() 

Когда я делаю это, я получаю эту ошибку:

line 1614, in _to_base_type 
    return json.dumps(value, 2) 
AttributeError: 'module' object has no attribute 'dumps' 

внутри класса модели ndb.

Как ndb.TextProperty он работает правильно. Может быть, я посылаю JSON неправильно, это объект JSON Я посылаю:

{posttext: "What is your earliest memory of WWII?", linkdata: ""} 

ответ

11

Возможно, у вас есть модуль с именем «json.py» или пакет с именем «json» в вашем приложении? Это заменит json-модуль, который пытается импортировать ndb. Решение состоит в том, чтобы выбрать другое имя для этого модуля или пакета.

+0

Да, вы правы, это была проблема. – prashn64

1

Что вы описываете прекрасно работает, когда я пытаюсь это:

from google.appengine.ext import ndb 
class TestModel(ndb.Model): 
    foo = ndb.JsonProperty() 
t = TestModel(foo={"posttext": "What is your earliest memory of WWII?", "linkdata": ""}) 
t.put() 
Key('TestModel', 7001) 

Вы можете перейти в более подробно о том, как вы это делаете? Как он отличается от фрагмента выше?

Смежные вопросы