Я запрашиваю 590 страниц из Meetup API. Я повторил цикл while, чтобы получить страницы. Теперь, когда у меня есть страницы, мне нужно запросить эти страницы и правильно отформатировать их как python, чтобы поместить в фрейм данных Pandas.
Вот как это выглядит, когда вы делаете это для one url:
url = ('https://api.meetup.com/2/groups?offset=1&format=json&category_id=34&photo-host=public&page=100&radius=200.0&fields=&order=id&desc=false&sig_id=243750775&sig=768bcf78d9c73937fcf2f5d41fe6070424f8d0e3') r = requests.get(url).json() data = pd.io.json.json_normalize(r['results'])
Но поскольку у меня так много страниц, я хочу сделать это автоматически и перебрать их все.
Вот так появились вложенные циклы, и вот что я попробовал:
urls = 0 offset = 0 url = 'https://api.meetup.com/2/groups?offset=%d&format=json&category_id=34&photo-host=public&page=100&radius=200.0&fields=&order=id&desc=false&sig_id=243750775&sig=768bcf78d9c73937fcf2f5d41fe6070424f8d0e3' r = requests.get(urls%d = 'https://api.meetup.com/2/groups?offset=%d&format=json&category_id=34&photo-host=public&page=100&radius=200.0&fields=&order=id&desc=false&sig_id=243750775&sig=768bcf78d9c73937fcf2f5d41fe6070424f8d0e3').json() while urlx < 591: new_url = r % urls % offset print(new_url) offset += 1
Однако, это не работает, и я получаю много ошибок, включая эту:
SyntaxError: ключевое слово не может быть выражением
Не уверен, что вы пытаетесь сделать, и в коде много проблем.
Но если вы просто хотите просмотреть циклы от 0 до 591 и получить URL-адреса, то вот код:
import requests import pandas as pd dfs = [] base_url = 'https://api.meetup.com/2/groups?offset=%d&format=json&category_id=34&photo-host=public&page=100&radius=200.0&fields=&order=id&desc=false&sig_id=243750775&sig=768bcf78d9c73937fcf2f5d41fe6070424f8d0e3' for i in range(0, 592): url = base_url % i r = requests.get(url).json() print("Fetching URL: %s\n" % url) # do something with r here # here I'll append it to a list of dfs dfs.append(pd.io.json.json_normalize(r['results']))