要在我的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来格式化字符串。我怎么能这样做。提前谢谢。
答案 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 ;;;