首页 > 解决方案 > 使用 VSCODE 时缺少 Foursquare API 响应的一部分

问题描述

我正在尝试使用VSCode创建一个Jupyter Notebook项目。在这个项目中,我使用 Foursquare API 来查询西雅图周围的场地。但是,当笔记本输出JSON文件响应时,我遇到了一个小问题。当我将参数设置为多个场所时,我只使用JSON文件的第二部分得到响应。LIMIT20

让我说清楚。

这只发生在VScode 上。当我使用浏览器在Jupyter NotebookLIMIT中输入相同的代码行并将参数设置为 more than20时,我得到了完整的JSON文件响应。

以下是VSCode中使用的代码示例:

导入的库:

import pandas as pd
import requests
import json
from geopy.geocoders import Nominatim
from pandas.io.json import json_normalize
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)

GEOPY.GEOCODERS 检索西雅图坐标。

address = 'Seattle, WA'

geolocator = Nominatim(user_agent="foursquare")
location = geolocator.geocode(address)
latitude = location.latitude
longitude = location.longitude
print(latitude, longitude)

带有 API 请求的凭据和参数的变量。(注意如何将限制设置为 21)

CLIENT_ID = 'client_id' # your Foursquare ID
CLIENT_SECRET = 'client_secret' # your Foursquare Secret
VERSION = '20180604'
LIMIT = 21
RADIUS = 500

API 请求的 URL。

url = 'https://api.foursquare.com/v2/venues/search?client_id={}&client_secret={}&ll={},{}&v={}&radius={}&limit={}'.format(CLIENT_ID, CLIENT_SECRET, latitude, longitude, VERSION, RADIUS, LIMIT)

API 请求。

results = requests.get(url).json()
results

不愉快的输出:(注意元数据和文件的第一部分是如何丢失的)

['600 4th Ave (5th & Cherry)',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d129941735',
      'name': 'City Hall',
      'pluralName': 'City Halls',
      'shortName': 'City Hall',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/cityhall_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749016',
    'hasPerk': False},
   {'id': '4b49098df964a520286326e3',
    'name': 'Seattle City Hall',
    'location': {'address': '600 4th Ave',
     'crossStreet': 'btwn Cherry & James',
     'lat': 47.60391791602839,
     'lng': -122.32999464587043,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.60391791602839,
       'lng': -122.32999464587043}],
     'distance': 10,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['600 4th Ave (btwn Cherry & James)',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d129941735',
      'name': 'City Hall',
      'pluralName': 'City Halls',
      'shortName': 'City Hall',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/cityhall_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749016',
    'hasPerk': False},
   {'id': '4e44510fe4cd394059e89099',
    'name': 'Karr Tuttle Campbell',
    'location': {'address': '701 5th Ave',
     'lat': 47.60440702245942,
     'lng': -122.33136024826479,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.60440702245942,
       'lng': -122.33136024826479}],
     'distance': 116,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['701 5th Ave',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d124941735',
      'name': 'Office',
      'pluralName': 'Offices',
      'shortName': 'Office',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/default_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749016',
    'hasPerk': False},
   {'id': '4c3f616ed691c9b6d8a6890a',
    'name': 'City Hall Plaza',
    'location': {'address': '600 4th Ave',
     'crossStreet': '4th & Cherry',
     'lat': 47.60378595075962,
     'lng': -122.33051066366723,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.60378595075962,
       'lng': -122.33051066366723}],
     'distance': 34,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['600 4th Ave (4th & Cherry)',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d129941735',
      'name': 'City Hall',
      'pluralName': 'City Halls',
      'shortName': 'City Hall',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/cityhall_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749016',
    'hasPerk': False},
   {'id': '4ddbc954091aae6b185e2968',
    'name': 'Seattle Municipal Tower 44th Floor',
    'location': {'address': '700 5th Ave',
     'crossStreet': 'Cherry Street',
     'lat': 47.60509704657094,
     'lng': -122.3301267150704,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.60509704657094,
       'lng': -122.3301267150704}],
     'distance': 140,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['700 5th Ave (Cherry Street)',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d124941735',
      'name': 'Office',
      'pluralName': 'Offices',
      'shortName': 'Office',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/default_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749016',
    'hasPerk': False},
   {'id': '598b268efc9e9467c3d48589',
    'name': 'Bertha Knight Landes Conference Room',
    'location': {'lat': 47.603764,
     'lng': -122.32945,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.603764,
       'lng': -122.32945}],
     'distance': 46,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['Seattle, WA 98104', 'United States']},
    'categories': [{'id': '4bf58dd8d48988d127941735',
      'name': 'Conference Room',
      'pluralName': 'Conference Rooms',
      'shortName': 'Conference room',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/office_conferenceroom_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749016',
    'hasPerk': False},
   {'id': '4a9e9437f964a5207c3a20e3',
    'name': 'Einstein Bros Bagels',
    'location': {'address': '600 4th Ave',
     'lat': 47.60389534060459,
     'lng': -122.33065690674596,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.60389534060459,
       'lng': -122.33065690674596}],
     'distance': 45,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['600 4th Ave',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d179941735',
      'name': 'Bagel Shop',
      'pluralName': 'Bagel Shops',
      'shortName': 'Bagels',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/food/bagels_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749016',
    'hasPerk': False},
   {'id': '427ab380f964a52096211fe3',
    'name': 'Columbia Center',
    'location': {'address': '701 5th Ave',
     'crossStreet': 'at Columbia St',
     'lat': 47.60452412230289,
     'lng': -122.33075151763909,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.60452412230289,
       'lng': -122.33075151763909},
      {'label': 'entrance', 'lat': 47.604432, 'lng': -122.330763}],
     'distance': 92,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['701 5th Ave (at Columbia St)',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d130941735',
      'name': 'Building',
      'pluralName': 'Buildings',
      'shortName': 'Building',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/default_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749016',
    'hasPerk': False} 

........ CONTINUED RESULTS INTENTIONALLY DELETED

运行带有LIMIT参数集的代码,20这给了我想要的输出。

CLIENT_ID = 'client_id'
CLIENT_SECRET = 'client_secret' 
VERSION = '20180604'
LIMIT = 20
RADIUS = 500

同样,请求的 url。(这里没有变化)

url = 'https://api.foursquare.com/v2/venues/search?client_id={}&client_secret={}&ll={},{}&v={}&radius={}&limit={}'.format(CLIENT_ID, CLIENT_SECRET, latitude, longitude, VERSION, RADIUS, LIMIT)
url

再一次,API 请求。(没有变化)

results = requests.get(url).json()
results

最后是带有完整 JSON 文件的所需输出

{'meta': {'code': 200, 'requestId': '606ce68a749e75020fe96e3a'},
 'response': {'venues': [{'id': '4c3b9d165810a593aff7ba3c',
    'name': 'City Council Chambers',
    'location': {'address': '600 4th Ave',
     'crossStreet': '5th & Cherry',
     'lat': 47.603861440975066,
     'lng': -122.33006802191612,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.603861440975066,
       'lng': -122.33006802191612},
      {'label': 'entrance', 'lat': 47.603626, 'lng': -122.329618}],
     'distance': 3,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['600 4th Ave (5th & Cherry)',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d129941735',
      'name': 'City Hall',
      'pluralName': 'City Halls',
      'shortName': 'City Hall',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/cityhall_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749643',
    'hasPerk': False},
   {'id': '4b49098df964a520286326e3',
    'name': 'Seattle City Hall',
    'location': {'address': '600 4th Ave',
     'crossStreet': 'btwn Cherry & James',
     'lat': 47.60391791602839,
     'lng': -122.32999464587043,
     'labeledLatLngs': [{'label': 'display',
       'lat': 47.60391791602839,
       'lng': -122.32999464587043}],
     'distance': 10,
     'postalCode': '98104',
     'cc': 'US',
     'city': 'Seattle',
     'state': 'WA',
     'country': 'United States',
     'formattedAddress': ['600 4th Ave (btwn Cherry & James)',
      'Seattle, WA 98104',
      'United States']},
    'categories': [{'id': '4bf58dd8d48988d129941735',
      'name': 'City Hall',
      'pluralName': 'City Halls',
      'shortName': 'City Hall',
      'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/cityhall_',
       'suffix': '.png'},
      'primary': True}],
    'referralId': 'v-1617749643',
    'hasPerk': False},

............ CONTINUED RESULTS INTENTIONALLY DELETED

进度更新

显然我正在获取完整的响应文件,但VSCode没有显示整个输出。

下面是来自同一请求的示例代码,LIMIT参数设置为30. 当我对文件进行切片以仅查看前 20 个场地时,会显示完整文件已获取但未显示的证据。

不知何故,我什至可以将其增加到22. 然而,如果我超过了这个门槛,问题就会再次出现。

输入:

 results['response']['venues'][0:22]

输出:

[{'id': '4c3b9d165810a593aff7ba3c',
  'name': 'City Council Chambers',
  'location': {'address': '600 4th Ave',
   'crossStreet': '5th & Cherry',
   'lat': 47.603861440975066,
   'lng': -122.33006802191612,
   'labeledLatLngs': [{'label': 'display',
     'lat': 47.603861440975066,
     'lng': -122.33006802191612},
    {'label': 'entrance', 'lat': 47.603626, 'lng': -122.329618}],
   'distance': 3,
   'postalCode': '98104',
   'cc': 'US',
   'city': 'Seattle',
   'state': 'WA',
   'country': 'United States',
   'formattedAddress': ['600 4th Ave (5th & Cherry)',
    'Seattle, WA 98104',
    'United States']},
  'categories': [{'id': '4bf58dd8d48988d129941735',
    'name': 'City Hall',
    'pluralName': 'City Halls',
    'shortName': 'City Hall',
    'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/cityhall_',
     'suffix': '.png'},
    'primary': True}],
  'referralId': 'v-1617761189',
  'hasPerk': False},
 {'id': '4b49098df964a520286326e3',
  'name': 'Seattle City Hall',
  'location': {'address': '600 4th Ave',
   'crossStreet': 'btwn Cherry & James',
   'lat': 47.60391791602839,
   'lng': -122.32999464587043,
   'labeledLatLngs': [{'label': 'display',
     'lat': 47.60391791602839,
     'lng': -122.32999464587043}],
   'distance': 10,
   'postalCode': '98104',
   'cc': 'US',
   'city': 'Seattle',
   'state': 'WA',
   'country': 'United States',
   'formattedAddress': ['600 4th Ave (btwn Cherry & James)',
    'Seattle, WA 98104',
    'United States']},
  'categories': [{'id': '4bf58dd8d48988d129941735',
    'name': 'City Hall',
    'pluralName': 'City Halls',
    'shortName': 'City Hall',
    'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/cityhall_',
     'suffix': '.png'},
    'primary': True}],
  'referralId': 'v-1617761189',
  'hasPerk': False},
 {'id': '4e44510fe4cd394059e89099',
  'name': 'Karr Tuttle Campbell',
  'location': {'address': '701 5th Ave',
   'lat': 47.60440702245942,
   'lng': -122.33136024826479,
   'labeledLatLngs': [{'label': 'display',
     'lat': 47.60440702245942,
     'lng': -122.33136024826479}],
   'distance': 116,
   'postalCode': '98104',
   'cc': 'US',
   'city': 'Seattle',
   'state': 'WA',
   'country': 'United States',
   'formattedAddress': ['701 5th Ave', 'Seattle, WA 98104', 'United States']},
  'categories': [{'id': '4bf58dd8d48988d124941735',
    'name': 'Office',
    'pluralName': 'Offices',
    'shortName': 'Office',
    'icon': {'prefix': 'https://ss3.4sqi.net/img/categories_v2/building/default_',
     'suffix': '.png'},
    'primary': True}],
  'referralId': 'v-1617761189',
  'hasPerk': False}

标签: jsonapivisual-studio-codejupyter-notebookfoursquare

解决方案


看起来我找到了解决问题的方法。

感谢大家在这个严肃的问题上的所有勤奋关注。

这里有说明:

转到VScode设置 > 在搜索框中输入:'text output'> 将文本输出限制设置为0

我希望这可以帮助下一个新秀。

VSCode 设置截图


推荐阅读