Я пытаюсь закодировать массив 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. Таким образом, когда я использую их в шаблоне, синтаксических ошибок не будет.
Спасибо. :)