Ce script se connecte à l’API du site https://www.villes-voisines.fr/
Il balaye tous les codes postaux et stocke les 10 villes voisines dans un rayon de 10km pour chaque code postal, dans une ligne d’un tableau excel qui s’enregistre dans le dossier où vous aurez placé le script.
import requests
import xlsxwriter
voisin = {}
for cp in range(1000, 99999):
if cp <= 9999:
cp = '0' + str(cp)
print(cp)
else:
cp = str(cp)
print(cp)
rayon = '10'
myurl = 'https://www.villes-voisines.fr/getcp.php?cp=' + cp + '&rayon=' + rayon
r = requests.get(myurl)
if(r.json()) != None:
a = r.json()
lst = []
for i in a:
if type(i) is str:
b = str(i)
# print(a[b]['nom_commune'])
lst.append([a[b]['nom_commune'], a[b]['code_postal'], a[b]['distance']])
else:
lst.append([i['nom_commune'], i['code_postal'], i['distance']]) #
y = 10 #taille souhaitée
for i in range(0, len(lst) - y):
lst.pop()
print(lst)
voisin[cp] = lst
# création d'un tableau excel vide et remplissage avec les données du tableau
workbook = xlsxwriter.Workbook('communes.xlsx')
worksheet = workbook.add_worksheet()
row = 0
col = 1
for key in voisin:
worksheet.write(row, 0, key)
for item in voisin[key]:
for i in range(0,len(item)):
worksheet.write(row, col, item[i])
col += 1
row +=1
col = 1
workbook.close()
Le tableau des communes limitrophes par code postal dans un rayon de 10km se trouve ici
version csv
NB : Pour l’exécuter il faut installer Python, pip, requests et xslxwriter