Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在同一代码集中第二次运行requests.get和json时会得到一个空数组?_Python_Json_Python Requests - Fatal编程技术网

Python 为什么在同一代码集中第二次运行requests.get和json时会得到一个空数组?

Python 为什么在同一代码集中第二次运行requests.get和json时会得到一个空数组?,python,json,python-requests,Python,Json,Python Requests,我正在运行一个程序,从谷歌地图API中提取信息。API一次只加载20个响应(最多60个),因此我必须发送一个初始请求,然后发送第二个和第三个请求以获取所有数据。我的问题是,第二个请求似乎有效(我得到了返回),但当我尝试使用json解析它时,得到的是一个空数组。代码在第一次迭代中工作,但在第二次迭代中不工作 第一次迭代: response1 = requests.get(url1) print(response1) results1 = response1.json()['results'] pr

我正在运行一个程序,从谷歌地图API中提取信息。API一次只加载20个响应(最多60个),因此我必须发送一个初始请求,然后发送第二个和第三个请求以获取所有数据。我的问题是,第二个请求似乎有效(我得到了返回),但当我尝试使用json解析它时,得到的是一个空数组。代码在第一次迭代中工作,但在第二次迭代中不工作

第一次迭代:

response1 = requests.get(url1)
print(response1)
results1 = response1.json()['results']
print(results1)
jj1 = json.loads(response1.text)
print(jj1)
if 'next_page_token' in jj1:
  next_page_token1 = jj1['next_page_token']
  url2 = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?key='+str(api_key)+'&pagetoken='+str(next_page_token1)
  print(url2)

  response2 = requests.get(url2)
  print(response2)
  **results2** = response2.json()['results'] *results2 is []
  print(results2)
  jj2 = json.loads(response2.text)
  print(jj2)
第二次迭代:

response1 = requests.get(url1)
print(response1)
results1 = response1.json()['results']
print(results1)
jj1 = json.loads(response1.text)
print(jj1)
if 'next_page_token' in jj1:
  next_page_token1 = jj1['next_page_token']
  url2 = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?key='+str(api_key)+'&pagetoken='+str(next_page_token1)
  print(url2)

  response2 = requests.get(url2)
  print(response2)
  **results2** = response2.json()['results'] *results2 is []
  print(results2)
  jj2 = json.loads(response2.text)
  print(jj2)

我能够通过在代码执行中添加暂停来解决这个问题。我的代码中有3个GoogleMapsAPI请求。如果他们不暂停处理,我会收到一条错误消息。一旦我添加了下面的模块和代码,代码就工作了

在此处输入代码
导入时间
time.sleep(2)

这似乎是API实现/使用的一个非常具体的问题,与python无关。这可能会有所帮助