Skip to content

Utilise Python plutôt que Postgres pour l’export des fichiers CSV

Ronan Amicel requested to merge serialisation-csv into main

Problème

Jusqu’ici on déléguait à Postgres la génération d’un fichier CSV à partir d’une table. L’inconvénient est qu’on n’a pas le contrôle des détails du format utilisé. En particulier pour les tableaux (colonnes de type TEXT[]), qui sont sérialisées sous la forme "{foo,bar}", laquelle n’est pas correctement parsée par Frictionless, ce qui rend impossible la validation d’un fichier exporté par rapport au Table Schema associé.

cf. !467 (merged) et https://sentry.incubateur.net/organizations/betagouv/issues/51439/

Solution

On utilise maintenant la bibliothèque csv pour générer le fichier côté Python, ce qui nous donne plus de contrôle. Dans le cas des tableau, on les sérialise maintenant en JSON avant de les écrire, ce qui colle à ce qui est attendu par Frictionless.

Edited by Ronan Amicel

Merge request reports