用于API json集合的嵌套while循环

时间:2018-05-08 10:45:59

标签: python json api while-loop python-requests

我正在从Meetup API请求590页。我已经迭代了一个while循环来获取页面。现在我有了这些页面,我需要请求这些页面并将它们正确格式化为python,以便放入Pandas数据帧。

  

这是一个网址

的用途
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'])
  

但是因为我有这么多页面,所以我想自动完成这些操作并迭代它们。

这就是嵌套while循环的方式,这就是我尝试的方法:

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:keyword不能是表达式

1 个答案:

答案 0 :(得分:1)

不确定你要做什么,而且代码有很多问题。

但是如果你只想循环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']))