7
votes

Comment puis-je convertir Dictionnaire Python vers la table de hachage Javascript?

Je me suis passé à un dictionnaire Python régulier régulier et j'ai besoin d'entrer dans

$ (document) .Ready (fonction (fonction () {..}

Pour convertir cette Dictionnaire Python du dictionnaire JavaScript. J'ai essayé comme xxx

mais j'ai eu des erreurs ( ' au lieu de et toutes les chaînes Commencez avec u '). Comment convertir le dictionnaire Python à la table de hachage JavaScript?


1 commentaires

Avez-vous vérifié s'il y a un équivalent JSON.Stringify en Python?


8 Réponses :


7
votes

Vous pouvez le convertir en JSON et utiliser cela dans ce modèle

dans votre code Python do xxx


0 commentaires

20
votes

Python et JavaScript ont des idées différentes sur la manière de représenter un dictionnaire, ce qui signifie que vous avez besoin d'une représentation intermédiaire afin de transmettre des données entre elles. Le moyen le plus courant de faire est JSON , qui est un simple format de données léger-interchange.

Utilisez le La bibliothèque Python JSON pour convertir (ou vider) votre dicte Python en une chaîne JSON. Puis, dans le JavaScript, analysez la chaîne JSON dans une dicte JavaScript. (Si vous utilisez jQuery, utilisez jquery.parsejson )


0 commentaires

1
votes

Comme d'autres les ont déjà suggérées, convertissant votre dictionnaire à JSON à votre vue, puis en passant le json au contexte de modèle, c'est vraiment votre meilleure approche, mais si vous voulez le garder comme un dictionnaire Python dans votre modèle, vous pouvez ; Vous avez juste besoin de créer manuellement la version JavaScript (c'est-à-dire que vous ne pouvez pas simplement le jeter avec {{paramètres}} ) xxx


0 commentaires

1
votes

Un exemple de travail inspiré de la réponse de Chris PatT ci-dessous (notez la différence):

 42     var js_dict = [
 43         {% for k, v in parameters.iteritems %}
 44             ["{{ k }}","{{ v }}"] {% if not forloop.last %},{% endif %}
 45         {% endfor %}
 46     ];


0 commentaires

2
votes

Vous pouvez utiliser json.dumps (paramètres) avec mark_safe () xxx

avec mark_safe () Je reçois un code non évalué dans le modèle.


0 commentaires

0
votes

Vous n'avez pas besoin d'envoyer le dictionnaire.

Voici comment j'ai mis en œuvre ceci:

vues.py xxx

mon modèle (pour morris.html): xxx


0 commentaires

0
votes

Comment gérer ce cas en passant à l'objet sur la page du modèle au lieu de passer la dicte à partir du fichier PY et j'ai créé la dicte requise sur le modèle lui-même. Comme:

sur ma py: xxx

sur mon modèle Django: Dans mon étiquette de script: xxx


0 commentaires

2
votes

J'ai trouvé que cela aide pour les chaînes contenant ['] aussi bien xxx


0 commentaires