在python中使用jinja2连接字符串和数字

时间:2013-07-24 11:24:11

标签: python python-2.7 jinja2

  

要在我的python脚本中连接字符串和数字,现在我使用   string.format()如下所示,我如何才能使用jinja2。

for item in mylist:
        mystr = '{}{}{}'.format(item['name'] + ' ;' + 
                ' ' + str(item['age'])+ ' ;'  if item.get('age') else ';',
                ' ' + item['email']+ ' ;' if item.get('email') else ';'                        
                )

mystr的一些示例输出

 1. abc ; 25 ; abc@gmail.com
 2. cdf ;;;

我想在我的python脚本中使用jinja2来格式化字符串。我怎么能这样做。提前谢谢。

2 个答案:

答案 0 :(得分:3)

你可以这样做:

{{ item['name'] }};{{ item['age'] }};{{ item['email'] }};

这是因为在Jinja2中,如果某些内容未定义,Jinja2将插入“无”。

我利用自由来忽略你的空间分布。如果你需要空格,那么你可以使用Jinja2的if-expressions

{{ "%s ;" % item['email'] if item['email'] is defined else ";" }}

答案 1 :(得分:1)

来自jinja2导入模板

template = Template(
            "{{ name }} ;"
            "{{ ' 'if age }}{{age if age }}{{' 'if age}};"
            "{{ ' ' if email}};{{ email if email}}{{ ' ' if email}};")

for item in mylist:
    people_tag =template.render(
                    name= item['name'],
                    age = item.get('age'),
                    email= item.get('email'))

o / p

abc; 25; abc@gmail.com;

XYZ ;;;