如何将python中的字符串变量转换为javascript文字数组?

时间:2011-03-12 07:30:09

标签: javascript python arrays

我试图将用逗号分隔的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 个答案:

答案 0 :(得分:3)

假设这是在Django模板中,那么这应该有效:

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

我在"周围添加了引号(tag_data),因为否则只会将字符串中的文字文本插入到Javascript中;你想构造一个包含这个值的Javascript字符串。

我还使用escapejs标记来避免嵌入反斜杠等问题。

答案 1 :(得分:1)

什么是

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

产生

顺便说一句,这可以进一步折叠成单行。

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

答案 2 :(得分:1)

正确的解决方案是不使用任何字符串函数 - 无论是在python还是javascript中 - 而是使用JSON编码器:

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

当然,如果你在python中有一个列表而不是字符串会更好......