首页 > 解决方案 > Python脚本跳过循环

问题描述

我正在尝试遍历一些 json 数据,但这些信息可以在几页上找到。我浏览第一页没有问题,但是它只会跳过下一组。奇怪的是,它在调试模式下会执行得很好。我猜这是处理 json 负载时的时间问题,但我尝试在该代码周围放置睡眠计时器,问题仍然存在。

url = apipath + query + apikey
response = requests.get(url)
data = json.loads(response.text)

for x in data["results"]:
    nameList.append(x["name"])
    latList.append(x["geometry"]["location"]["lat"])
    lonList.append(x["geometry"]["location"]["lng"])

pagetoken = "pagetoken=" + data["next_page_token"]
url = apipath + pagetoken + apikey
response = requests.get(url)
data = json.loads(response.text)
for x in data["results"]:
    nameList.append(x["name"])
    latList.append(x["geometry"]["location"]["lat"])
    lonList.append(x["geometry"]["location"]["lng"])

标签: pythonjsonloopsdebugging

解决方案


我冒昧地猜测这data["results"]等于一个None值,因此调用for x in None:会导致程序跳过你的 for 循环。您是否尝试在 for 循环上方打印?也许print(data["results"])在进入你的循环之前尝试确保你想要的数据存在。如果返回,None那么也许可以尝试print(data)看看程序正在读取什么。


推荐阅读