Maison > développement back-end > Tutoriel Python > Comment résoudre « SyntaxError : jeton inattendu '&' » lors de l'analyse de JSON dans les modèles Jinja ?

Comment résoudre « SyntaxError : jeton inattendu '&' » lors de l'analyse de JSON dans les modèles Jinja ?

Mary-Kate Olsen
Libérer: 2024-12-20 10:13:16
original
320 Les gens l'ont consulté

How to Resolve

Résolution de l'erreur de syntaxe JavaScript lors du rendu des données JSON dans les modèles Jinja

Lorsque vous essayez de parcourir les données JSON via le code JavaScript rendu dans un modèle Jinja, vous pouvez rencontrer une erreur « SyntaxError : Erreur inattendue du jeton '&'" lors de l'appel de JSON.parse(). Cette erreur est due à l'échappement automatique des données par l'environnement Jinja de Flask lors du rendu dans les modèles HTML.

Solution : Utilisation du filtre tojson

Pour empêcher ce processus d'échappement et gérer les données au format JSON en JavaScript , Flask fournit le filtre tojson. Il convertit les objets Python en JSON et les marque comme sûrs pour le rendu dans le modèle.

return render_template("tree.html", tree=tree)
Copier après la connexion
Copier après la connexion
<script>
  var tree = {{ tree|tojson }};
</script>
Copier après la connexion

Gestion des données non JSON

Si vous ne traitez pas de données JSON ou l'avez déjà converti en chaîne, vous pouvez utiliser le filtre sécurisé ou envelopper la chaîne dans un balisage pour éviter échapper :

return render_template("tree.html", tree=json.dumps(tree))
Copier après la connexion
<script>
  var tree = {{ tree|safe }};
  // or
  var tree = {{ Markup(json.dumps(tree)) }};
</script>
Copier après la connexion

Transmission de données brutes

Si vous avez l'intention d'utiliser les données dans le modèle Jinja lui-même plutôt que de les transmettre à JavaScript, vous pouvez omettre le filtre tojson et utiliser directement les données Python brutes.

return render_template("tree.html", tree=tree)
Copier après la connexion
Copier après la connexion
{% for item in tree %}
  <li>{{ item }}</li>
{% endfor %}
Copier après la connexion

En implémentant ces techniques, vous pouvez utiliser efficacement les données JSON rendues en JavaScript sans rencontrer le problème SyntaxError.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal