String Jinja2通过空格拆分字符串

String Jinja2通过空格拆分字符串,string,split,jinja2,String,Split,Jinja2,我使用的是Jinja2模板引擎(+pelican) 我有一个字符串是“A1”,我正在寻找一种方法将该字符串一分为二 使用空格作为分隔符 所以我要寻找的最终结果是一个变量,它以数组的形式保存这两个值。e、 g.str[0]计算为“a”&str[1]计算为“1” 提前谢谢 对字符串调用split应该可以做到: "a 1".split() 我也有同样的问题,没有发现任何有用的东西,所以我只是创建了一个自定义过滤器: def split_space(string): return string

我使用的是Jinja2模板引擎(+pelican)

我有一个字符串是“A1”,我正在寻找一种方法将该字符串一分为二 使用空格作为分隔符

所以我要寻找的最终结果是一个变量,它以数组的形式保存这两个值。e、 g.str[0]计算为“a”&str[1]计算为“1”


提前谢谢

对字符串调用split应该可以做到:

"a 1".split()

我也有同样的问题,没有发现任何有用的东西,所以我只是创建了一个自定义过滤器:

def split_space(string):
    return string.strip().split()
将其添加到过滤器列表(带烧瓶):

并将其作为模板使用:

{% if "string" in element|split_space %} ... {% endif %}

我的解决方案在iPython进行了测试

In [1]: from jinja2 import Template
In [2]: Template("{{s.split('-')}}").render(s='a-bad-string')
Out[2]: u"['a', 'bad', 'string']"

我建议使用以下方法:

str = "a 1 b 2 c 3"
val = atr.split()
val1 = atr.split()[2]
此外,如果您想指出一个特定的位置,则可以使用以下方法:

str = "a 1 b 2 c 3"
val = atr.split()
val1 = atr.split()[2]

这将把第二个值放入
val1

我制作了一个与Loïc的答案相同的小插件,但它可以选择指定一个分隔符

它允许您键入:

# my_variable = 'a 1`
{ my_variable | split | join(' and ') } #=> a and 1

您也可以使用装饰师来完成此操作:

from flask import Flask
app = Flask(__name__)

@app.template_filter('split_space')
def split_space_filter(s):
    return s.strip().split()

if __name__ == '__main__':
    app.run()

@Loïc我想我使用了与Ansible类似的东西,它使用了Jinja2。那可能要看情况了?我对此不是很确定。只需确认允许的_hosts.split()%}中主机名的{%。因此,我假设您也可以执行{%set hostnames=allowed_hosts.split()%},但尚未测试后者。@MichaelNelson的后一种方法也可以<代码>{instances%}{%set route_name=instance.split('''[1]]}平衡器成员http://{{instance}route={{{route_name}}}{%endfor%}有人知道split()记录在哪里吗?如果我找不到它,那就糟了。@MatthewCornell你是说这个?