Le souci est que, depuis un an, ce fichier n’est plus proposé au format CSV mais uniquement en .json. Je rencontre des difficultés à exploiter ces informations.
Est-ce que quelqu’un saurait comment convertir ce format .json en CSV ? J’ai effectué des recherches en ligne, mais je n’ai pas trouvé d’informations claires à ce sujet. Pour information, une fois le fichier téléchargé et extrait, il contient 36 000 petits fichiers .json (correspondant au nombre de mairies en France).
sinon en à peu près 5 lignes de python je pense que c’est faisable, avec la librairie pandas, si c’est un besoin très ponctuel tu trouvera surement quelqu’un pour te le faire d’ailleurs on peut en discuter, à titre gracieux évidemment vu que çà prends 5mn, sinon si c’est un besoin récurrent (bon les mairies ne changent pas tous les jours j’imagine), vaut mieux avoir un petit script / outil qui fait çà
import json
import csv
with open('data.json', 'r') as json_file:
data = json.load(json_file)["service"]
headers = data[0].keys()
with open('output.csv', 'w', newline='', encoding='utf-8') as csv_output:
csv_writer = csv.DictWriter(csv_output, fieldnames=headers)
csv_writer.writeheader() # Écrire les en-têtes
csv_writer.writerows(data) # Écrire les données
print("Données converties en CSV et enregistrées dans output.csv")
je l’ai fait de mon coté aussi, avec pandas c’est plus rapide en général, déjà il n’avait pas besoin de tous les champs ce qui raccourci un peu la manip et surtout il fallait « applatir » le json, je sais pas si c’est le bon terme (flatten en anglais) car le json comporte des structures imbriquées (dictionnaires de dictionnaires), on ne peut pas les mettre tels quels dans un csv
Oui j’avais eu le souci de cette imbrication et avec pandas c’était plus malin à faire
import pandas as pd
import json
with open('data.json', 'r') as json_file:
data = json.load(json_file)["service"]
df = pd.DataFrame(data)
df.to_csv('output.csv', index=False, encoding='utf-8')