cquest / geocodage-spd

Scripts de géocodage et remise en forme des bases du Service Public de la Donnéee
GNU Affero General Public License v3.0
69 stars 19 forks source link

Encodage des fichiers .csv : soucis d'import dans PostgreSQL #13

Open garaud opened 4 years ago

garaud commented 4 years ago

Bonjour !

En prenant l'ensemble des fichiers csv par département présents sur http://data.cquest.org/geo_sirene/v2019/last/dep/, je me suis fait mordre par PostgreSQL avec un :

value too long for type character varying(26)

En effet, j'ai repris la définition des variables présentes dans les fichiers CSV https://www.sirene.fr/sirene/public/static/liste-variables en créant un table PostgreSQL avec la bonne longueur des différents champs. Par exemple :

Puis en faisant un bête COPY CSV TO, j'ai eu des chaînes parfois plus longues. Deux exemples :

Je me demande si dans le filtre ou le découpage d'entités par département, y'aura pas un soucis d'encodage qui se glisse.

Pour l'instant, j'ai augmenté la taille de mes champs.

Merci, Damien G.

garaud commented 4 years ago

Grmbl, j'ai aussi des p'tits malheureux ¿ qui trainent dans certains champs.

garaud commented 4 years ago

Mea culpa, y'en a dans les données source aussi...

Pour le SIREN 212901102, dans les résultats de recherche de https://www.sirene.fr/sirene/public/recherche j'ai des trucs comme LOTISSEMENT N¿2

garaud commented 4 years ago

J'ai l'impression que le script de geocodage geocode.py, quand il est appelé avec plus de deux arguments à la ligne de commande, ce qui est le cas pour v2019/batch.sh n'a pas le bon encoding à la lecture du fichier .csv https://github.com/cquest/geocodage-spd/blob/master/insee-sirene/geocode.py#L71

    sirene_csv = csv.reader(open(sys.argv[1], 'r', encoding='iso8859-1'),
                            delimiter=',')

puisque les fichiers sont déjà (et enfin) publiés en utf-8.