Jinja2 JSON

Ich las etwas in „The Hard Thing About Hard Things“. CEO Geschichten aus der ersten Dotcom Blase, mit Firmen, an die ich mich aus meiner Studienzeit erinnere. Ganz nett.

Ich schaute mir mal wieder Newscatcher an, was erneut auf der HN Frontpage landete. Das Teil hat eine ganze Menge RSS Feeds gesammelt. Fast 3500 sind in der DB. In den Kommentaren gab’s einige interessante Links zu anderen Sites aber OK.

Nach 5 setzte ich mich an’s Video JSON Tool. Ich schob die gestrigen Sachen der Jinja2 Engine erst mal beiseite, will ja auch HTML Previews generieren und nahm dazu gleich Flask. So habe ich alles, was ich brauche. Das ssdpreise.de Projekt wurde dazu teils kopiert.

Eine kleine Runde Joggen nach Sonnenuntergang. Auf der Schafstreibe saß eine Gruppe Mädels – „Sport frei!“. Das erste Mal seit jahren hier, und nicht ganz ungefährlich, weil da auch Autos schnell durchfahren.

Mit den Jinja Templates kam ich nur langsam voran. JSON ging dann auch für’s Erste:

{% for index, row in row_data.iterrows() %}
{ {% for key, value in zip(column_names, row) %}
"{{ key }}": "{{ value }}"{% if not loop.last %},{% endif %}{% endfor %}
},
{% endfor %} }

Ich schaffte aber den JSON Output erst mal, muss nur zu viel im CSV definieren, was vereinfacht werden sollte. Jedes Template sollte einfacher definiert werden als jedes Mal „composition, layerName, type, property und value“ zu setzen. Wenigstens klappte die Sache in einem ersten Test. In jeder Comp wurde der Text ausgetauscht und der Clip gerendert.

Es wird sicher einfacher, die CSV Tabelle smarter zu machen. Ich will nicht für jeden dynamischen Parameter alles definieren. So werde ich wohl im Template txt, img, vid uas der Spalte nehmen und entsprechend die Felder befüllen.

Erst dachte, ich dass ich YAML nehmen könnte aber Template Tags aus dem CSV zu generieren sehe ich nicht so einfach. Jetzt werde ich einfach über tests die JSON Sachen reinkleben.

{% for layer, value in zip(column_names, row) %}
{% if layer|first == "t" %}{{ text }}{% endif%}
{% if layer|first == "i" %}{{ image }}{% endif%}
{% if layer|first == "v" %}{{ video }}{% endif%}
{% if layer|first == "d" %}{{ data }}{% endif%}
{{ layer }} {{ value }}{% endfor %}

Die Row ist pro Comp, sollte nur einmal definiert werden. Pro Col dann die dynamischen Inhalte, die sich per Comp unterscheiden, mit den Füllungen aus globalen Defs – bis eben auf die „value“, auf die es ankommt. Alles hackig aber es geht um den JSON Input für Video-Output, nicht Jinja Schönheit.

Das Staircase AE Script hat ein paar nützliche Features, wie auch Fade mit SHIFT+Click / ALT+Click. Motivation wieder gut, weil bisher einiges genauso funktioniert.

0 Responses to “Jinja2 JSON”


Kommentare sind zur Zeit nicht möglich.
2020-05-21_15-44-53_IMG_20200521_154451875.jpg
2020-05-21_15-44-53_IMG_20200521_154451875.jpg
2020-05-21_21-30-41_IMG_20200521_213040449_HDR.jpg
2020-05-21_21-30-41_IMG_20200521_213040449_HDR.jpg
2020-05-21_21-32-46_IMG_20200521_213244889_HDR.jpg
2020-05-21_21-32-46_IMG_20200521_213244889_HDR.jpg
2020-05-21_22-54-27_IMG_20200521_225424770_PORTRAIT.jpg
2020-05-21_22-54-27_IMG_20200521_225424770_PORTRAIT.jpg
2020-05-22_02-19-56_IMG_20200522_021955419.jpg
2020-05-22_02-19-56_IMG_20200522_021955419.jpg
2020-05-22_05-19-56_S0503487.jpg
2020-05-22_05-19-56_S0503487.jpg
2020-05-22_05-20-04_S0513488.jpg
2020-05-22_05-20-04_S0513488.jpg
2020-05-22_05-24-03_DSCF3513.jpg
2020-05-22_05-24-03_DSCF3513.jpg