首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在调用所使用的API之后,“‘property”对象不可迭代,试图获得响应

在调用所使用的API之后,“‘property”对象不可迭代,试图获得响应
EN

Stack Overflow用户
提问于 2022-02-10 10:38:02
回答 1查看 2K关注 0票数 1

当我试图在调用我想要使用的API之后得到响应时,我有这个错误。

代码语言:javascript
复制
ValueError: [TypeError("'property' object is not iterable"), 
  TypeError('vars() argument must have __dict__ attribute')]

我正试着使用快速表,以便从客户那里获得纬度和经度,这样我就可以向公众展示该地区的交通运输情况。我可以使用一个名为GeoApify的API来完成这个任务。然而,我有一个问题,我找不到我的错误。

我通过使用字典来发出请求,以便将筛选器的所有参数转换为JSON。但我有这个错误。

代码语言:javascript
复制
 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
EN

回答 1

Stack Overflow用户

发布于 2022-02-10 11:58:21

用途如下:

代码语言:javascript
复制
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}")
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()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71063608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档