Python 迭代用于Yelp API代码的输入参数列表

Python 迭代用于Yelp API代码的输入参数列表,python,python-3.x,yelp,Python,Python 3.x,Yelp,这是我第一次使用堆栈溢出,也是我第一次使用Python,所以如果我提供的代码比需要的多,或者我问了错误的问题,请原谅我。我仍然在弄清楚对API的调用是如何工作的,所以我提供了与之交互的所有代码。此代码有效,但仅适用于参数“CATEGORY_1”和“LOCATION”中的单个字符串输入。我试图弄清楚如何为每个参数输入列表,以便它遍历每个参数,向API发出许多不同的url请求,并打印出所有结果。我希望输出显示列表中的每个位置输入地址,然后显示“bikes”和“skateshops”类别的相应API业

这是我第一次使用堆栈溢出,也是我第一次使用Python,所以如果我提供的代码比需要的多,或者我问了错误的问题,请原谅我。我仍然在弄清楚对API的调用是如何工作的,所以我提供了与之交互的所有代码。此代码有效,但仅适用于参数“CATEGORY_1”和“LOCATION”中的单个字符串输入。我试图弄清楚如何为每个参数输入列表,以便它遍历每个参数,向API发出许多不同的url请求,并打印出所有结果。我希望输出显示列表中的每个位置输入地址,然后显示“bikes”和“skateshops”类别的相应API业务搜索结果。我不确定将for循环放在哪里,而且我使用的.replace属性似乎不适用于列表对象。感谢您的帮助

真诚地,编程n00b

#Oauth credentials
CLIENT_ID = XXX
CLIENT_SECRET = XXX

# Yelp API Constants
API_HOST = 'https://api.yelp.com'
SEARCH_PATH = '/v3/businesses/search'
BUSINESS_PATH = '/v3/businesses/'  
TOKEN_PATH = '/oauth2/token'
GRANT_TYPE = 'client_credentials'

# Desired Search parameters
CATEGORY_1 = ['bikes','skateshops']
LOCATION = ['123 Meadow St, Portland, OR', '222 Spring St, Provo, UT', '808          
Williams Ave, Walla Walla, Washington']
RADIUS = 8050
SEARCH_LIMIT = 50

def obtain_bearer_token(host, path):
    url = '{0}{1}'.format(host, quote(path.encode('utf8')))
    assert CLIENT_ID, "Please supply your client_id."
    assert CLIENT_SECRET, "Please supply your client_secret."
    data = urlencode({
        'client_id': CLIENT_ID,
        'client_secret': CLIENT_SECRET,
        'grant_type': GRANT_TYPE,
    })
    headers = {
        'content-type': 'application/x-www-form-urlencoded',
    }
    response = requests.request('POST', url, data=data, headers=headers)
    bearer_token = response.json()['access_token']
    return bearer_token

def request(host, path, bearer_token, url_params=None):
    url_params = url_params or {}
    url = '{0}{1}'.format(host, quote(path.encode('utf8')))
    headers = {
        'Authorization': 'Bearer %s' % bearer_token,
    }

    print(u'Querying {0} ...'.format(url))

    response = requests.request('GET', url, headers=headers,    
    params=url_params)

    return response.json()

def search(bearer_token, term, location):
    url_params = {
        'categories': term.replace(' ', '+'),
        'location': location.replace(' ', '+'),
        'radius': RADIUS,
        'limit': SEARCH_LIMIT
    }
    return request(API_HOST, SEARCH_PATH, bearer_token, url_params=url_params)

def get_business(bearer_token, business_id):
        business_path = BUSINESS_PATH + business_id
        return request(API_HOST, business_path, bearer_token)

def query_api(term, location):
    bearer_token = obtain_bearer_token(API_HOST, TOKEN_PATH)
    response = search(bearer_token, term, location)
    businesses = response.get('businesses')
    for x in businesses[:]:
    location=x['location']
    print('{0},{1},{2},{3},{4},{5},{6},{7}'.format(x['name'],location['addre
    ss1'],location['city'],location['state'],location['zip_code'],
    x['phone'],x['url'],term))