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

En mi aplicación web necesito almacenar mi cadena de python con todas las comillas simples escapadas para su manipulación posterior en los navegadores de cliente javascript. El problema es que Python usa la misma notación de escape de barra invertida, por lo que la operación de reemplazo que se detalla arriba no tiene ningún efecto.Cómo escapar de comillas simples en Python en servidor para ser utilizado en Javascript en Cliente

¿Hay alguna solución alternativa?

Respuesta

25

Uso:

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

o

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

¡Esto está tan mal! Pruebe esto: sample = "\\ '"; sample.replace ("'", "\\'") #fail! – sharjeel

+0

¡tienes razón, la segunda alternativa no funciona! –

42

como una solución general para pasar datos de Python para Javascript, considere la serialización con el json biblioteca (parte de la biblioteca estándar en Python 2.6+)

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

+1 esto resuelve de forma segura las barras diagonales inversas, saltos de línea y Unicode, lo que no ocurre con el pirateo en los apóstrofos. – bobince

+0

Estaba tratando de escapar '' '' caracteres en json ... el sentido común ataca de nuevo – Droogans

+0

my python 2.7.2 no se serializa como tal. "Hello'world" es el producto –

Cuestiones relacionadas