Presidencia de la Nación

Normalizar una entidad con requests


Se puede consultar la API para normalizar un nombre de entidad geográfica y obtener sus atributos asociados:

Consulta

import requests import urllib API_BASE_URL = "https://apis.datos.gob.ar/georef/api/v2.0/" def get_similar(endpoint, nombre, **kwargs): kwargs["nombre"] = nombre url = "{}{}?{}".format(API_BASE_URL, endpoint, urllib.parse.urlencode(kwargs)) return requests.get(url).json()[endpoint] provincias = get_similar("provincias", "San Juan")
Resultado:

[{ 'centroide': {'lat': -30.865368, 'lon': -68.889491}, 'id': '70', 'nombre': 'San Juan' }]

Normalizar una lista de nombres (consulta por lotes)

Para normalizar múltiples entidades a la vez, puede utilizarse el método POST:

Consulta

def get_similar_bulk(endpoint, nombres): data = { endpoint: [ {"nombre": nombre, "max": 1} for nombre in nombres ] } url = API_BASE_URL + endpoint results = requests.post( url, json=data, headers={"Content-Type": "application/json"} ).json() parsed_results = [ single_result[endpoint][0] if single_result[endpoint] else {} for single_result in results["resultados"] ] return parsed_results provincias = get_similar_bulk("provincias", ["pxa", "sant fe"])
Resultado:

[ {}, # "pxa" no obtuvo coincidencias { 'centroide': {'lat': -30.706927, 'lon': -60.949837}, 'id': '82', 'nombre': 'Santa Fe' } ]

Georreferenciar puntos (enriquecer coordenadas)

También es posible consultar qué unidades territoriales contienen a un punto geográfico específico (latitud y longitud):

Consulta

def get_territorial_units(ubicaciones): endpoint = "ubicacion" data = { "ubicaciones": [ {"lat": u["lat"], "lon": u["lon"], "aplanar": True} for u in ubicaciones ] } url = API_BASE_URL + endpoint results = requests.post( url, json=data, headers={"Content-Type": "application/json"} ).json() parsed_results = [ single_result[endpoint] if single_result[endpoint] else {} for single_result in results["resultados"] ] return parsed_results ubicaciones = get_territorial_units([ {"lat": -32.9477132, "lon": -60.6304658}, {"lat": -34.6037389, "lon": -58.3815704} ])
Resultado:

[ { 'departamento_id': '30105', 'departamento_nombre': 'Victoria', 'municipio_id': '82210', 'municipio_nombre': 'Rosario', 'provincia_id': '30', 'provincia_nombre': 'Entre Ríos' }, { 'departamento_id': '02007', 'departamento_nombre': 'Comuna 1', 'municipio_id': None, 'municipio_nombre': None, 'provincia_id': '02', 'provincia_nombre': 'Ciudad Autónoma de Buenos Aires' } ]
Activar: 
0
Template: 
caritas3
Scroll hacia arriba