I want to replace two existing tilesets in mapbox with an geojson file using the mapbox API in Python. But I keep getting the error 'not authorized - no token'. What am i doing wrong? Is this the wright way of coding but is the token not valid? Or am I missing something in my code? I wrote this Python script:
import requests
import json
mapbox_token = 'xxxx'
username = 'sss'
wijk_tileset_id = 'sss.9l1h5qnt'
buurt_tileset_id = 'sss.7vee460g'
geojson_file_path_wijk = 'H:\MIZ\BI\Mapbox\CBS wijk en buurt kaarten\Geojson bestanden\CBS Wijken 2023
uitgebreid.geojson'
geojson_file_path_buurt = 'H:\MIZ\BI\Mapbox\CBS wijk en buurt kaarten\Geojson bestanden\CBS Buurten
2023 uitgebreid.geojson'
try:
with open(geojson_file_path_wijk, 'r') as file:
geojson_data_wijk = json.load(file)
except FileNotFoundError:
print('Het opgegeven GeoJSON-bestand kon niet worden gevonden.')
exit(1)
except json.JSONDecodeError:
print('Er was een fout bij het decoderen van de JSON-gegevens in het bestand.')
exit(1)
replace_url_wijk = f'https://api.mapbox.com/tilesets/v1/sources/{username}/{wijk_tileset_id}'
headers = {
'Authorization': f'Bearer {mapbox_token}',
}
response_wijk = requests.put(replace_url_wijk, json=geojson_data_wijk)
if response_wijk.status_code == 200:
print('GeoJSON-bestand succesvol vervangen in Mapbox WBI - WIJKEN Tileset.')
else:
print('Fout bij het vervangen van GeoJSON-bestand in Mapbox WBI - WIJKEN Tileset.')
print('Statuscode:', response_wijk.status_code)
print('Response-tekst:', response_wijk.text)
try:
with open(geojson_file_path_buurt, 'r') as file:
geojson_data_buurt = json.load(file)
except FileNotFoundError:
print('Het opgegeven GeoJSON-bestand kon niet worden gevonden.')
exit(1)
except json.JSONDecodeError:
print('Er was een fout bij het decoderen van de JSON-gegevens in het bestand.')
exit(1)
replace_url_buurt = f'https://api.mapbox.com/tilesets/v1/sources/{username}/{buurt_tileset_id}'
headers = {
'Authorization': f'Bearer {mapbox_token}',
}
response_buurt = requests.put(replace_url_buurt, headers=headers, json=geojson_data_buurt)
if response_buurt.status_code == 200:
print('GeoJSON-bestand succesvol vervangen in Mapbox WBI- BUURTEN Tileset.')
else:
print('Fout bij het vervangen van GeoJSON-bestand in Mapbox WBI - BUURTEN Tileset.')
print('Statuscode:', response_buurt.status_code)
print('Response-tekst:', response_buurt.text)