I'm using jinja 2 to output a yaml file but can't seem to get rid of a trailing newline and the end of a for loop. Eg the below
- request: path: {{ path }} headers: origin: 'somedomain.com' user-agent: 'agent' referer: 'some.domain.com' authority: 'somedomain.com' querystring: {% for key, value in querystring.items() -%} {{ key }}: '{{ value }}' {% endfor %} response: content: file: {{ content }}
gives me the output:
- request: path: /some/path headers: origin: 'somedomain.com' user-agent: 'agent' referer: 'somedomain.com' authority: 'somedomain.com' querystring: postcode: 'xxxxxx' houseNo: '55' response: content: file: address.json
With an additional unwanted blank line after houseNo. How do I get rid of this line?
Change your loop to strip whitespace from the top AND bottom of the output (notice extra -
at the for
loop close):
{% for key, value in querystring.items() -%} {{ key }}: '{{ value }}' {%- endfor %}
In my tests (using https://github.com/abourguignon/jinja2-live-parser), the -
must come after the first {%
, not before the last to achieve what you're asking for.
Docs: https://jinja.palletsprojects.com/en/latest/templates/#whitespace-control
I think you can get rid of it using the whitespace control feature. Thus I would modify the endfor
block to {% endfor -%}
See if that does it!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With