es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Salida de la plantilla Ansible Jinja2 en formato CSV

Intentando crear una lógica de seguridad en la salida como csv separado por comas cada columna mediante una plantilla de JInja2.
La lógica de seguridad debe indicarme si falta algún elemento en los módulos o tecnologías.
Cualquier ayuda es apreciada para descifrar la lógica de la plantilla de JInja2.

Variable

swproduct_list:
  header: Producto Sw, módulo de producto sw, tecnología

<p>detalles:
    - nombre: BASE PACKAGE
      Módulos:
        - Polygon Manager
        - Common Manager
      tecnología:
        - SPRING CLOUD
        - SPRING CLOUD</p>

<pre><code>- nombre: DMA
  Módulos:
    - KUA bajo demanda
    - Parámetros KUA
  tecnología:
    - SPRING CLOUD
    - SPRING CLOUD
</code></pre>

<p>```</p>

<strong>Resultado deseado</strong>

Producto Sw, módulo de producto sw, tecnología
DMA, KUA bajo demanda, SPRING CLOUD
DMA, Parámetros KUA, SPRING CLOUD
BASE PACKAGE, Polygon Manager, SPRING CLOUD
BASE PACKAGE, Common Manager, SPRING CLOUD


**Solución - Plantilla Jinja2**

{% for intf in swproduct_list.details -%}
{% for ll in intf.Modules -%}
{{ intf.name }}, {{ ll }}, {{ intf.tech[loop.index0] }}
{% endfor %}
{% endfor %}
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    La plantilla Jinja2 proporcionada se puede usar para crear la salida deseada. La solución utiliza un bucle anidado para iterar a través de las listas “Modules” y “tech” dentro de cada elemento “details” en el diccionario “swproduct_list”.

    El bucle “for intf in swproduct_list.details” se utiliza para recorrer cada elemento “details” en el diccionario “swproduct_list”. El bucle “for ll in intf.Modules” se utiliza para recorrer cada elemento en la lista “Modules” dentro de ese elemento “details” en particular.

    Para garantizar una lógica segura, se utiliza la expresión “intf.tech[loop.index0]” para acceder al elemento “tech” correspondiente en la misma posición de índice que el elemento actual de “Modules”. Esto garantiza que se seleccione el elemento correcto de “tech” incluso si las listas “Modules” y “tech” tienen longitudes diferentes.

    La salida se genera como valores separados por comas utilizando la coma (“,”) como separador en la cadena de salida. Se incluye una fila de encabezado inicialmente y luego el bucle genera las filas de datos.

    Nota: Se asume que la lista “tech” tiene el mismo número de elementos que la lista “Modules” para cada elemento “details”. Si esta suposición no es correcta, entonces la plantilla deberá ser modificada en consecuencia.

Comments are closed.