You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Meetup API分页迭代While循环失效问题求助

解决Meetup API分页遍历的错误问题

我来帮你捋捋这个分页遍历的问题,看你贴的代码,有几个明显的坑可能导致出错,咱们一个个来修正:

1. URL里的转义字符是隐形坑

你原始URL里的&是HTML转义后的&符号,直接丢给requests.get的话,API服务器会把它当成参数的一部分,而不是参数分隔符,这会导致请求的参数解析错误,返回的数据结构可能和你预期的不一样,自然取meta.next的时候就容易出问题。得把所有&换成普通的&。

2. 分页URL的赋值逻辑错了

你代码里把下一页的URL赋值给了url2,但循环判断的是url变量,这就导致循环只会跑一次,根本不会去请求后续的分页数据。得把url = data['meta'].get('next'),这样每次循环结束后更新url,没有下一页的时候get会返回None,循环就自动终止了。

3. 缺少异常处理太脆弱

API请求很容易出问题——比如网络波动、服务器返回非JSON格式、或者返回的数据里没有meta/results字段,没有异常处理的话程序直接就崩了,还不知道哪里错了。最好加上异常捕获,既能避免崩溃,还能打印错误信息方便排查。

修正后的完整代码

import requests
import pandas as pd

# 修正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'

while url:
    try:
        # 发送请求并检查是否成功
        response = requests.get(url)
        response.raise_for_status()
        data = response.json()
        
        # 解析当前页的结果
        page_data = pd.io.json.json_normalize(data['results'])
        print(page_data)
        
        # 更新为下一页的URL,没有则返回None,循环终止
        url = data['meta'].get('next')
    except requests.exceptions.RequestException as e:
        print(f"请求过程出错了: {str(e)}")
        break
    except KeyError as e:
        print(f"返回的JSON结构不对,找不到字段: {str(e)}")
        break

你可以试试这个版本,应该能解决你遇到的问题。如果还是有错误,看看控制台打印的错误信息,就能知道具体是请求问题还是数据结构的问题了。

内容的提问来源于stack exchange,提问作者snow_fall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:23:28