Closed tusbar closed 2 years ago
Bonsoir,
3 json maintenant sur https://cadastre.data.gouv.fr/data/
Consommable avec ces appels qui demande la version compressée du JSON qui passe de quelques centaines de MB à quelques MB. Le prix à payer est de décompresser sur le client
# Avec curl + gunzip
curl -H "Accept-Encoding: gzip" https://cadastre.data.gouv.fr/data/etalab-cadastre-latest.json --output - | gunzip -d > etalab-cadastre-latest.json
# Avec wget + gunzip
wget --header="Accept-Encoding: gzip" https://cadastre.data.gouv.fr/data/dgfip-pci-vecteur-latest.json -O - | gunzip -d > dgfip-pci-vecteur-latest.json
En utilisant un appel HTTP avec le "bon" header en utilisant Python
import gzip
import json
import urllib.request
URL = 'https://cadastre.data.gouv.fr/data/dgfip-pci-vecteur-latest.json'
header={'Accept-Encoding': 'gzip'}
req = urllib.request.Request(url=URL, headers=header)
with urllib.request.urlopen(req, timeout=5) as response:
pagedata = gzip.decompress(response.read())
data = json.loads(pagedata)
with open(f"{URL.split('/')[-1]}", 'w') as outfile:
json.dump(data, outfile, indent=4)
Nous ne donnons pas les dates des fichiers pour ne pas encore alourdir la taille des fichiers JSON. latest
correspond toujours à la dernière date sur https://cadastre.data.gouv.fr/data/dgfip-pci-vecteur/
Nous avons fait le choix de rajouter partout l'URL complète de chaque dossier ou fichier disponible.
La seule "metadata" est la taille des fichiers côté disque.
Je laisse la discussion ouverte pour le moment, si vous avez des retours.
Addendum:
Une recette pour lister les sections depuis les noms des fichiers
wget --header="Accept-Encoding: gzip" https://cadastre.data.gouv.fr/data/dgfip-pci-vecteur-latest.json -O - | gunzip -d > dgfip-pci-vecteur-latest.json
jq -r '.[].contents[] | select(.name | endswith("edigeo")) | .contents[] | select(.name | endswith("feuilles"))| .contents[].contents[].contents[].name' dgfip-pci-vecteur-latest.json | cut -d '/' -f 11 | sed 's/edigeo-\|\.tar\.bz2//g' >| sections.txt