Как печатать данные из api, у которого есть ограничение на 50 вызовов

#python #mongodb #python-requests

Вопрос:

Я пытаюсь получить данные из API, который имеет ограничение в 50 вызовов, поэтому я выполняю цикл из 400 итераций, чтобы собрать все данные (около 2000).

По какой-то причине я продолжаю получать принтер 1, 2, 3, 4, 5.. 399. Мне нужны данные, которые я получаю из API, а не последовательные числа! Есть какие-нибудь идеи?

 from helpers import parse_meebit_data, parse_sale_data import requests import pandas as pd import json  import matplotlib import matplotlib.pyplot as plt  plt.style.use('ggplot')  import pymongo from pymongo import MongoClient   # Making connection to MongoClient client = 'my url'  #Creating database db = client['meebitsDB']  # Creating collection/table meebits_collection = db['meebitsCollection'] sales_collection = db['salesCollection']  # The source code below collects assets data  # 'The API has a limit of 50 items per call,   url = "https://api.opensea.io/api/v1/assets"  for i in range(0, 400):  param = {"token_ids":list(range((i*50) 1, (i*50) 51)),  "asset_contract_address":"0x7Bd29408f11D2bFC23c34f18275bBf23bB716Bc7",  "order_direction":"desc",  "offset":"0",  "limit":"50"}  response = requests.request("GET", url, params=param)   print(response.text)  

Если я включу следующий код, то мой вывод станет 0 connection error

 if response.status_code != 200:  print('Connection error')  break  

Любая помощь будет признательна!

Комментарии:

1. Вы никогда ничего не печатаете из ответа. Только ваша переменная индекса i

2. ладно, в этом есть смысл.. когда я пытаюсь распечатать(response.json), я получаю новую ошибку, поэтому я думаю, что я в правильном направлении.. спасибо за разъяснение!

3. @LukeNelson Еще раз привет, если вы изменили печать на печать(response.text), которая возвращает в терминале много строк «подробно»: «Запрос был задушен». «Может ли это быть связано с ограниченной скоростью использования API OpenSea, который я использую? Есть ли способ остановить это?

4. К сожалению, на самом деле нет «решения» для ограничения ставок. Однако можно попытаться оптимизировать свой код, чтобы ограничить количество выполняемых вызовов api. Например, вы можете попытаться загрузить как можно больше данных сразу и кэшировать их локально. Это означало бы, что ваши данные не всегда полностью актуальны, но это может быть приемлемо в вашем случае использования.