Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@LtGlahn
Last active September 21, 2021 09:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LtGlahn/dc781c779ef590f1e8272549daf83557 to your computer and use it in GitHub Desktop.
Save LtGlahn/dc781c779ef590f1e8272549daf83557 to your computer and use it in GitHub Desktop.
Finner NVDB vegnett der det ikke er registret kontraktsområde, ref https://www.vegdata.no/2021/09/21/hvor-mangler-vi-kontraktsomrade
"""
Hvordan finne de bitene av vegnettet som mangler kontraktsområde?
https://www.vegdata.no/2021/09/21/hvor-mangler-vi-kontraktsomrade/
"""
import requests
# Setter filter
mittfilter = { 'vegsystemreferanse' : 'Fv', 'fylke' : 34}
# Headers må vi ha: Det er høflig å si hvem vi er, og
# dessuten angi at vi liker JSON-formatet
headers = { 'Accept' : 'application/vnd.vegvesen.nvdb-v3-rev1+json',
'X-Client' : 'Python elskere hilsen fra NVDB-teamet'
}
# Liste som holder sluttresultatet:
resultat = []
# Henter første bolk med data (første side i paginering),
# og itererer derfor over påfølgende bolker inntil det er tomt
apiurl = 'https://nvdbapiles-v3.atlas.vegvesen.no/vegnett/veglenkesekvenser/segmentert'
data = requests.get( apiurl, headers=headers, params=mittfilter ).json()
while data['metadata']['returnert'] > 0:
# Tar kun vare på dem som mangler data for kontraktsområde
for etSegment in data['objekter']:
if not 'kontraktsområder' in etSegment or len( etSegment['kontraktsområder'] ) < 1:
resultat.append( etSegment )
# Neste bolk med data
r = requests.get( data['metadata']['neste']['href'], headers=headers )
data = r.json()
# Så blir det opp til deg hvordan du håndterer resultatet: listen over vegsegmenter som mangler kontraktsområder
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment