2013-07-24 4 views
1

파이썬 스크립트에서 문자열과 숫자를 연결하려면 다음과 같이 string.format()을 사용하십시오. 어떻게 동일한 jinja2를 사용할 수 있습니까? mystr의파이썬에서 jinja2를 사용하여 문자열과 숫자를 연결하십시오.

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

일부 샘플 출력은 내가 그것을 할 수있는 string.How의 형식을 내 파이썬 스크립트에서 jinja2를 사용하려면

1. abc ; 25 ; [email protected] 
2. cdf ;;; 

있습니다. 미리 감사드립니다. 뭔가 정의되지 않은 경우 Jinja2에, Jinja2는 "아무것도"를 삽입하지 않기 때문에

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

이것은 :

+0

이 질문에 답을하지는 못했지만 'mystr ='; 'join ((item.get ('name ',' '), str (item.get ('age ',')), item.get ('email', '')))' –

답변

3

은 당신이 뭔가를 할 수 있습니다.

저는 공간 배포를 무시하기 위해 자유를 사용했습니다. jinja2 가져 오기 템플릿에서

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

django가 아닌 python 프로젝트를 개발 중입니다. 그렇다면 어떻게해야합니까? – Jisson

+1

Jisson, 질문에 "나는 jinja2를 사용하고 싶다."라고 말했습니다. 내가 당신에게 보여준 것은 Jinja2입니다. Jinja2는 Django의 템플릿과 매우 유사합니다. 아마도 여러분에게 익숙한 이유 일지 모르지만 django와 동일하지는 않습니다. – HolgerSchurig

+0

은 jinja에 완전히 익숙하지 않습니다. 파이썬 코드에서 {{}}을 어떻게 사용할 수 있습니까? 그것은 sytax 오류, 또는 jinja2.somemethod ({{}}) 사용해야합니까? – Jisson

1

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; 당신이 공간을 필요로하는 경우에, 당신은 Jinja2의 if-expressions을 사용할 수 있습니다 25; [email protected];

xyz ;;;

관련 문제