如何将Python中的字符串变量转换为JavaScript字面量数组?

0 投票
3 回答
1419 浏览
提问于 2025-04-16 13:33

我尝试把用逗号分隔的Python字符串数据转换成JavaScript数组变量,但这个过程似乎没有成功。

这是我现在的代码:

    var tagstring = {{ tag_data }};
    var availableTags = new Array();
    var availableTags = tagstring.split(",");

我希望这个数组看起来像这样:

var availableTags = ["Google App Engine","jQuery"];

有没有什么好主意?

编辑:

这些是有效的代码,感谢StackOverflow社区的帮助 :)

    var tagstring = "{{ tag_data }}";
    var availableTags = new Array();
    var availableTags = tagstring.split(",");

基本上,尽管Python变量是一个字符串,但在JavaScript中仍然需要把它指定为字符串变量。

3 个回答

1

正确的做法是不要使用任何字符串函数,无论是在Python还是JavaScript中,而是使用一个JSON编码器:

var availableTags = {{ json.dumps(elem.strip() for elem in tag_data.split(',')) }}

当然,如果你在Python中有一个列表而不是字符串,那就更好了……

1

这段代码

var tagstring = "{{ tag_data }}";
var availableTags = tagstring.split(",");

会产生什么结果呢?

顺便提一下,这段代码还可以进一步简化成一行代码。

var availableTags = "{{ tag_data }}".split(",");
3

假设这是在Django的模板中,那么这样写应该没问题:

var tagstring = "{{ tag_data|escapejs }}";

我在tag_data周围加了引号("),因为如果不加的话,字符串里的文字就会直接插入到JavaScript中;你其实是想构建一个包含这个值的JavaScript字符串。

我还用了escapejs标签,这样可以避免出现嵌入的反斜杠等问题。

撰写回答