python/бутылка и возврат dict

Я использую python/bottle, чтобы вернуть dict/json в мое приложение для Android (приложение, использующее GSON для анализа в JSON). Кажется, он неправильно анализирует текст python.

Вот что возвращает питон:

[{u'slot': -1.0, u'rnd': -1.0}]

Но Gson устанавливает slot = 0 и round = 0, поэтому он либо неправильно читает его, либо просто устанавливает значения по умолчанию. Как я могу заставить python не возвращать строку в кодировке unicode, а просто обычную или строку. Вот оскорбительный код Python

...
return str(move)

Move - это объект, который возвращается для запроса поиска pymongo, и во время теста он был [{u'slot': -1.0, u'rnd': -1.0}], ну, Python добавил «u», когда мы посмотрите на значения в рокмонго, у них нет буквы «u».


person arinte    schedule 10.04.2012    source источник
comment
Это не похоже на полный, правильный пример.   -  person Marcin    schedule 11.04.2012
comment
Это может быть глупый вопрос, но знаете ли вы, что вы должны вернуть json.dumps(move), чтобы сделать его json?   -  person luke14free    schedule 11.04.2012
comment
Если бы я знал это, как вы думаете, я бы задал вопрос. Думаю, я должен был сказать Марсину, что когда я отслеживаю на стороне Android, строка, возвращаемая str(move), будет [{u'slot': -1.0, u'rnd': -1.0}]   -  person arinte    schedule 11.04.2012
comment
использование json.dumps действительно сработало..., опубликуйте как ответ, и я приму.   -  person arinte    schedule 11.04.2012


Ответы (1)


Если вы хотите, чтобы бутылка превратила ваш дикт в JSON, верните дикт. Не str(...), не список со словарем в нем, а просто словарь.

Пример:

from bottle import route

@route('/some/path')
def some_callback():
    return {'slot': -1.0, 'rnd': -1.0}
person defnull    schedule 11.04.2012