simplejson.dumps を使用して、Python 配列を json にエンコードしようとしています。
In [30]: s1 = ['test', '<script>']
In [31]: simplejson.dumps(s1)
Out[31]: '["test", "<script>"]'
正常に動作します。
しかし、simplejson.dumps を呼び出す前に、(Django の escapejs を使用して) 最初に文字列をエスケープしたいと考えています。
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にエンコードする前に、最初に文字列をエスケープしたいだけです。したがって、テンプレートで使用しても構文エラーは発生しません。
ありがとう。:)