Я пытаюсь закодировать массив Python в json, используя simplejson.dumps:
In [30]: s1 = ['test', '<script>']
In [31]: simplejson.dumps(s1)
Out[31]: '["test", "<script>"]'
Работает нормально.
Но я хочу сначала экранировать строки (используя escapejs из Django) перед вызовом simplejson.dumps:
In [35]: s_esc
Out[35]: [u'test', u'\\u003Cscript\\u003E']
In [36]: print simplejson.dumps(s_esc)
["test", "\\u003Cscript\\u003E"]
Моя проблема: я хочу, чтобы экранированная строка была: ["test", "\u003Cscript\u003E"]
вместо ["test", "\\u003Cscript\\u003E"]
Я могу использовать replace
:
In [37]: print simplejson.dumps(s_esc).replace('\\\\', '\\')
["test", "\u003Cscript\u003E"]
Но это хороший подход? Я просто хочу экранировать строки, прежде чем кодировать их в json. Поэтому при использовании их в шаблоне синтаксических ошибок не будет.
Спасибо. :)