2010-09-14 4 views
22
>>> sample = "hello'world" 
>>> print sample 
hello'world 
>>> print sample.replace("'","\'") 
hello'world 

Dans mon application web je besoin de stocker ma chaîne de python avec tous les guillemets simples se sont échappés pour une manipulation plus tard dans le client navigateurs javascript. Le problème est que python utilise la même notation d'échappement de barre oblique inverse, de sorte que l'opération de remplacement décrite ci-dessus n'a aucun effet.Comment échapper les guillemets simples en Python sur le serveur à utiliser en Javascript sur le client

Espérons qu'il y ait une solution de contournement simple?

Répondre

25

Utilisation:

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

ou

sample.replace("'", "\\'") 
+1

Ceci est vraiment faux! Essayez ceci: sample = "\\ '"; sample.replace ("'", "\\'") #fail! – sharjeel

+0

vous avez raison la deuxième alternative ne fonctionne pas !!! –

42

En tant que solution générale pour les données passant de Python à Javascript, envisagez sérialisation avec la bibliothèque json (partie de la bibliothèque standard en Python 2.6+).

>>> sample = "hello'world" 
>>> import json 
>>> print json.dumps(sample) 
"hello\'world" 
+4

+ 1 cela prend en charge en toute sécurité les barres obliques inverses, les sauts de ligne et Unicode, ce qui n'est pas le cas pour les apostrophes. – bobince

+0

je tentais d'échapper '" 'caractères JSON ... les grèves de bon sens à nouveau. – Droogans

+0

mon python 2.7.2 serialize ne marche pas en tant que tel. « Hello'world » est le produit –