J'ai un dictionnaire python, par exemple:
[{"pk":"1","name":"John","size":"1/4" "},{},{},etc]
Cette taille est 1/4 pouce, comment pourrais-je "échapper" à cette citation? Donc, il serait toujours afficher comme 1/4 ",
C'est une liste de choses, donc je ne peux pas simplement le coder manuellement comme 1/4\"
, J'ai essayé replace('"','\"')
EDIT: La liste originale est un champ de texte dans mes modèles 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'}]
La prochaine étape je dois préparer la liste pour jQuery, donc je remplace comme ceci pour que sa syntaxe soit correcte pour json .
Alors j'ai cette liste:
[{"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"}]
Alors maintenant, la liste est envoyée au modèle et je la parcoure avec jquery, mais la liste est cassée à cause du "dans les chaînes.
SO ... je dois échapper à ceux-ci "pour que la liste fonctionne, sinon elle a une erreur de syntaxe évidente.
J'espère que cela a du sens maintenant.
Merci
Vous devez échapper votre barre oblique inversée lors du remplacement pour le faire imprimer. Essayer
replace('"','\\"')
Il n'y a pas besoin de le faire à la dure. Laissez Django sérialiser la requête définie pour vous.
J'ai eu le même problème, j'ai utilisé une méthode d'échappement intégrée au python ... quelque chose comme ça m'a aidé
[{"pk":"1","name":"John","size":"1/4\" "},{},{},etc]
Réf: -
http://docs.python.org/2/reference/lexical_analysis.html#string-literals
Vous dites:
Je dois préparer la liste pour jQuery
Je suppose donc que vous essayez de générer des objets Python sous forme de chaîne dans un fichier de modèle, transformé de sorte que la chaîne de sortie constitue un code Javascript valide.
Cela revient à les sérialiser en JSON.
Ceci est un problème résolu, au lieu de remplacer les guillemets simples par des guillemets doubles, etc.
import json
my_python_data = [{'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'}]
str_to_output_in_js_template = json.dumps(my_python_data)
Cela gérera toute l'échappement pour vous et garantira que le résultat est un objet Javascript valide.