Modelo de formatação Jinja2 usando o dicionário de valores de dicionário

Abhijit

Eu tenho o conteúdo abaixo como uma entrada para meu modelo jinja:

{'run_test': {'NS': [], 'SS': [' Create']}, 'pre_test': {'MS': [], 'FI': [' Create'], 'FS': [' Create', ' size=10']}}

Aqui eu tenho um dicionário que contém 2 chaves:
1. run_test
2. pre_test

Eu escrevi um script onde desejo preencher os valores dessas chaves. O valor de cada chave é um dicionário. Este dicionário contém Key2 e valor como lista. Eu quero gerar uma instrução de importação em meu script, onde estou usando o texto de key2.
Exemplo:
aqui, a saída esperada é:

from blabla import NS, SS, MS, FI, FS

Observe aqui NS, SS, MS, FI e FS são os valores key2. Além disso, o problema que estou enfrentando é anexar as vírgulas. No final da string, não quero adicionar a vírgula. Meu código atual é:

from blabla import {% for key, val in content.items() -%}
{%- for obj in val -%}
  {%- if loop.last -%}
    {{ obj }}
  {%- else -%}
    {{ obj }},
   {%- endif -%}
   {%- endfor -%}
{%- endfor %}

E a saída que ele retorna é:

from blabla import NS
,SSMF
,FI,FS

Alguém pode me ajudar a obter a saída desejada no formato esperado.

Matvei

Isso funciona para mim:

from blabla import {% for key, val in content.items() -%}
{% set outer_loop = loop %}
{%- for obj in val -%}
  {%- if loop.last and outer_loop.last -%}
    {{ obj }}
  {%- else -%}
    {{ obj }},<span> </span>
   {%- endif -%}
   {%- endfor -%}
{%- endfor %}

Espaços em branco fora das tags em HTML geralmente são ignorados, portanto, as <span>tags ajudam a inserir o espaço após cada vírgula. Você também deseja pular a vírgula no último elemento do loop interno na última iteração do loop externo. Criar a variável outer_loop permite que você faça isso.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

TOP lista

quentelabel

Arquivo