python - Jinja2:将字符串拆分为多个列表

标签 python jinja2

我想获取一个输入字符串,例如

"server1:port1,server2:port2,server3:port3"

并将其分成 2 个列表:

servers = [ server1, server2, server3 ]
ports = [ port1, port2, port3 ]

这里有两个分隔符可以分隔:首先是“,”,然后元素本身用“:”分隔。

有没有快速的方法来做到这一点?

另外,如何将任何列表“toString”为类似的内容 portString =“端口1,端口2,端口3”?

最佳答案

如果您想在 jinja 模板中执行此操作,则可以使用以下代码。

    {% set server = [] %}
    {% set port = [] %}
    {% set x= "server1:port1,server2:port2,server3:port3" %}
    {% for i in x.split(',') %}
        {% for j in i.split(':') %}
            {% set server = server + j[0] %}
            {% set port = port + j[1] %}
        {% endfor %}
    {% endfor %}

但在模板中执行此操作是一个非常糟糕的主意。如果你将它作为字典传递给你的模板,然后像这样使用它,那就更好了

{% for k,v in x.iteritems() %}
#use k as server and v as port

关于python - Jinja2:将字符串拆分为多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43571748/

相关文章:

python - 格式化要在 jinja2 模板中呈现的嵌套 Python 字典的最佳方法

python - Jinja 在 set block 中转义 HTML

javascript - JQuery $(window).load 无法与 Jinja 模板正常工作

python - 重新排列 ansible 输出

python smtpd.SMTP服务器 : How to send reply message in process_message?

python - 在 Python 2.7 中返回打印函数

python - 打开文本文件作为 textblob 的输入

python - 暂时删除 python 模块

python - 在本地主机上使用 Google OAuth

jinja 的 python 测验