web-dev-qa-db-ja.com

クライアント上のJavaScriptで使用されるサーバー上のPythonで単一引用符をエスケープする方法

考慮してください:

>>> sample = "hello'world"
>>> print sample
hello'world
>>> print sample.replace("'","\'")
hello'world

私のWebアプリケーションでは、Python文字列をすべて単一引用符でエスケープし、後でクライアントブラウザのJavaScriptで操作できるようにエスケープする必要があります。問題はPythonバックスラッシュエスケープ表記法なので、上記の置換操作は効果がありません。

簡単な回避策はありますか?

27
rutherford

使用する:

sample.replace("'", r"\'")

または

sample.replace("'", "\\'")
29

Python=からJavascriptにデータを渡すための一般的なソリューションとして、jsonライブラリ(Pythonの標準ライブラリの一部2.6+)。

>>> sample = "hello'world"
>>> import json
>>> print json.dumps(sample)
"hello\'world"
45
Daniel Roseman