未捕获的SyntaxError:将列表/数组传递给Javascript时出现意外标记(&W)

未捕获的SyntaxError:将列表/数组传递给Javascript时出现意外标记(&W),javascript,python,flask,jinja2,Javascript,Python,Flask,Jinja2,我是JavaScript新手。我使用Flask和Python,Flask模板使用Jinja模板库来呈现模板。我通过API调用获取数组。 我的数组如下所示: array = [{ country: 'Macediona', city: ['Skopje','Ohrid', 'Bitola'] }, { country: 'Switzerland', city: ['Bazel', 'Zurich', 'Ze

我是JavaScript新手。我使用Flask和Python,Flask模板使用Jinja模板库来呈现模板。我通过API调用获取数组。 我的数组如下所示:

    array = [{
        country: 'Macediona', 
        city: ['Skopje','Ohrid', 'Bitola']
        }, {
        country: 'Switzerland', 
        city: ['Bazel', 'Zurich', 'Zeneva']
        }, {
        country: 'Srbia', 
        city: ['Nis', 'Belgrad']
        }];
我可以使用{array}}在HTML模板中传递这个数组,根据Flask文档,我也可以在Javascript中传递同样的数组

但当我使用Javascript时:

var list = {{ array }}
我有错误:未捕获的语法错误:意外标记&。 通过控制台调试,我看到该列表在键和值之前和之后传递了其他内容

    array = [{
        'country': ''Macediona'', 
        ....
如何在Javascript中获得干净的数组?

解码字符串

function decodeHtml(html) {
return $('<div>').html(html).text();

出于安全原因,Jinja正在转义代码中的html。 &39; 是一个

有关jinja的html转义的信息可在此处找到:

启用自动转义时,默认情况下会转义所有内容,但显式标记为安全的值除外

因此,为了防止Jinja逃逸您的代码,您可以使用Jinja的内置过滤器。 要将代码标记为安全,请使用安全过滤器

var list = {{ array | safe }}

代码在哪里?你能告诉我们发生错误的代码吗?如果我这样做:var list={%raw%}{{{array}}{%endraw%}我有另一个错误:未捕获的语法错误:意外的标记{。非常感谢!这解决了问题!xD@mitevva_t很乐意帮忙。请接受答案,将问题标记为已回答。
var list = {{ array | safe }}