Google App Engine Python просто ускользает? - PullRequest
2 голосов
/ 22 июня 2011

Версия django.utils.simplejson в GAE, например, экранирует символы "/", но не "\ n" при выполнении js = json.dumps(my_dict_w_strings_w_newline_and_slash), что вызывает проблемы, когда я пытаюсь json.loads(js) в моем клиенте в другом месте.

Любые предложения о том, как разобраться в решении?Строки представляют собой данные в кодировке base64, которые разрушаются этим.

Ответы [ 2 ]

3 голосов
/ 23 июня 2011

Я попробовал версию simplejson, поставляемую с SDK (Django 0.96 и 1.2), и обе экранировали '\ n':

>>> simplejson.dumps({'foo': '\n'})
'{"foo": "\\n"}'

И на http://shell.appspot.com/:

Google App Engine/1.5.1
Python 2.5.2 (r252:60911, Mar 17 2011, 15:16:30) 
[GCC 4.3.1]

>>> from django.utils import simplejson
>>> simplejson.dumps({'foo': '\n'})
'{"foo": "\\n"}'
>>> simplejson.dumps('foo/bar')
'"foo\\/bar"'
0 голосов
/ 23 июня 2011

Мой коллега предложил:

if json.encoder.ESCAPE_DCT.get('/') != '/':
    json.encoder.ESCAPE_DCT['/'] = '/'

, который работает хорошо.

...