2011-06-08 3 views
11

que tienen un diccionario de Python ej .:cotizaciones que se escapan en cadena

[{"pk":"1","name":"John","size":"1/4" "},{},{},etc] 

que el tamaño es de 1/4 de pulgada, ¿cómo iba a "escapar" de esa cita? Por lo que todavía sería mostrarlo como 1/4" ,

Es una lista de las cosas, así que no puedo acaba de codificar manualmente como 1/4\", me trataron replace('"','\"')

EDIT: La lista original es un campo de texto en mis modelos de Django:

[{'pk': '91', 'size': '', 'name': 'Thread Flat For BF', 'quantity': '2'}, {'pk': '90', 'size': '', 'name': 'Blade Holders Straight ', 'quantity': '26'},{'size':'3"','name':'2m 1/4" Round bar', 'quantity':'43'},{'size':'5','name':'2m 1/8" Round bar', 'quantity':'4'}] 

siguiente paso que tienen que preparar la lista para jQuery, así que reemplazan como esto por lo que su en la sintaxis correcta para JSON mat_list = manufactured_part.material_list.replace ("'",'. "')

entonces tengo esta lista:

[{"pk": "91", "size": "", "name": "Thread Flat For BF", "quantity": "2"}, {"pk": "90", "size": "", "name": "Blade Holders Straight ", "quantity": "26"},{"size':"3"","name':"2m 1/4" Round bar", "quantity":"43"},{"size":"5","name":"2m 1/8" Round bar", "quantity":"4"}] 

Así que ahora la lista se envía a la plantilla y yo bucle a través de él con jQuery, pero la lista se rompe debido a la "en las cuerdas.

SO ... tengo que escapar a los "de la lista para funcionar, de lo contrario, tiene un error de sintaxis obvio.

Espero que esto tenga sentido ahora.

Gracias

+2

¿Qué estás realmente * * tratando de pedir? –

+0

Im preguntando cómo tendría esa lista intacta con el "signo de pulgada – Harry

+0

¿Por qué no puede preparar datos antes de agregar a su diccionario? –

Respuesta

25

Es necesario escapar de su barra invertida en la reemplace con el fin de lograr que se imprime. Trate

replace('"','\\"') 
+0

gracias, lo hice reemplazar ('"', '\"'), Ahora funciona con su solución – Harry

+1

Tenga cuidado con eso. Por ejemplo, estableciendo el ejemplo str ing '' 'foo = 'hurr' durr \\ '' '' utilizando '' 'print (' string es '% s' '% foo.replace ('" ',' \\ "'))' '' print '' 'string es" hurr \ "durr \" '' ',' '' print ('foo = "% s"'% foo.replace ('"', '\"')) '' 'se convierte en' '' string es "hurr" durr \ "' ''. – luckydonald

+0

@luckydonald tienes razón, pero es posible evitar el problema con las pruebas de backslash, algo así como re.sub (r "(? rloth

5

no hay necesidad de hacerlo de la manera difícil. Vamos a Django serialize la consulta establecido para yo tú

Cuestiones relacionadas