我对编程很陌生,所以我确信这不正确,但根据我的研究,它是我能做的最好的。感谢。
import pandas as pd
import numpy as np
import requests
import yelp
requests.get(https://api.yelp.com/v3/autocomplete?text=del&latitude=37.786882&longitude=-122.399972,headers={'Authorization: Bearer <API KEY that I have>'})
我的noob self告诉我这是一个dictonary
headers={'Authorization: Bearer <API KeY>'}
我知道这是100%错误,所以我真的很想了解更多关于在Python中使用rest API的信息。我只是将其作为个人项目。我的总体目标是能够通过API访问yelps公共数据。例如,我想获得商业X的评论。
更新
requests.get("https://api.yelp.com/v3/autocomplete?text=del&latitude=37.786882&longitude=-122.399972",headers={'Authorization: Bearer <API KEY>'})
我现在收到以下错误
AttributeError: 'set' object has no attribute 'items'
答案 0 :(得分:5)
你肯定不是100%错误@g_altobelli!
让我们以商业X的评论为例,其中X是我最喜欢的餐厅之一 - 旧金山的la taqueria。他们的餐馆ID(可以在他们的评论页面的网址中找到最后一个元素)是la-taqueria-san-francisco-2
。
现在我们的代码:
您有正确的想法使用请求,我认为您的参数可能稍微偏离。初始化有一些标题是有帮助的。这是我添加的内容:
import requests
API_KEY = "<my api key>"
API_HOST = 'https://api.yelp.com'
BUSINESS_PATH = '/v3/businesses/'
然后我创建了一个函数,它接受了业务id并返回了基本数据的jsonified结果。看起来像这样:
def get_business(business_id):
business_path = BUSINESS_PATH + business_id
url = API_HOST + business_path + '/reviews'
headers = {'Authorization': f"Bearer {API_KEY}"}
response = requests.get(url, headers=headers)
return response.json()
最后,我用我的值调用了函数并打印了结果:
results = get_business('la-taqueria-san-francisco-2')
print(results)
我得到的输出是json,看起来大致如下:
{'reviews': [{'id': 'pD3Yvc4QdUCBISy077smYw', 'url': 'https://www.yelp.com/biz/la-taqueria-san-francisco-2?hrid=pD3Yvc4QdUCBISy077smYw&adjust_creative=hEbqN49-q6Ct_cMosX68Zg&utm_campaign=yelp_api_v3&utm_medium=api_v3_business_reviews&utm_source=hEbqN49-q6Ct_cMosX68Zg', 'text': 'My second time here.. \nI love the Burito here it has the distinct taste of freshness.. we order super steak burito and boy it did not disappoint! everything...}
这有帮助吗?如果您还有其他问题,请与我们联系。