Tengo este error cuando intento obtener una respuesta después de la llamada de la API que quiero usar.
ValueError: [TypeError("'property' object is not iterable"), TypeError('vars() argument must have __dict__ attribute')]Estoy tratando de usar fastapi para obtener del cliente las latitudes y longitudes para poder mostrar el transporte público de esa área. Podría hacer esto con una API llamada GeoApify. Sin embargo, tengo un problema y no puedo encontrar mi error.
Hago una solicitud usando un diccionario para poner todos los parámetros para mi filtro y luego convierto la respuesta a JSON. Pero tengo este error.
from pickletools import string1 from fastapi import FastAPI import requests from requests.structures import CaseInsensitiveDict app = FastAPI() @app.get("/thanos/{lon}/{lat}") async def read_item(lat : float,lon : float): url = "https://api.geoapify.com/v2/places" headers = CaseInsensitiveDict() dict = { "categories" : 'public_transport', "filter" : 'circle:' + str(lon) + ',' + str(lat) + ",500", "limit" : '20', "apiKey" : '086a77f34e3a4ed583da9606318ca0ac' } params = dict headers = CaseInsensitiveDict(params) headers["Accept"] = "application/json" resp = requests.get(url, headers = headers) # resp = requests.get(url = url, params = params) data = resp.json return respÚselo como se indica a continuación:
from fastapi import FastAPI import requests from requests.structures import CaseInsensitiveDict import urllib app = FastAPI() url = "https://api.geoapify.com/v2/places" @app.get("/{lon}/{lat}") async def read_item(lat : float, lon : float): params = { "categories" : 'public_transport', "filter" : 'circle:' + str(lon) + ',' + str(lat) + ",500", "limit" : '20', "apiKey" : '086a77f34e3a4ed583da9606318ca0ac' } headers = CaseInsensitiveDict() headers["Accept"] = "application/json" params = urllib.parse.urlencode(params) resp = requests.get(url=url, params=params, headers=headers) return resp.json()