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

Nel mio web app ho bisogno di memorizzare la mia stringa di pitone con tutti i singoli apici fuggiti per la manipolazione più avanti nel client i browser javascript. Il problema è che Python utilizza la stessa notazione escape backslash in modo che l'operazione di sostituzione come sopra descritta non abbia alcun effetto.Come sfuggire singoli apici in Python sul server da utilizzare in Javascript sul client

Speriamo che ci sia una soluzione semplice?

risposta

25

Usa:

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

o

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

Questo è così sbagliato! Prova questo: sample = "\\" "; sample.replace ("'", "\\" ") #fail! – sharjeel

+0

hai ragione la seconda alternativa non funziona !!! –

42

Come una soluzione generale per il passaggio di dati da Python a JavaScript, prendere in considerazione la serializzazione con la libreria json (parte della libreria standard in Python 2.6 +).

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

+1 questo si occupa in modo sicuro di backslash, newline e Unicode, che non si limita a hackerare gli apostrofi. – bobince

+0

Stavo cercando di scappare '' 'caratteri in json ... il senso comune colpisce ancora – Droogans

+0

il mio python 2.7.2 non serializza come tale." Hello'world "è il prodotto –

Problemi correlati