#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. Например, вы можете попытаться загрузить как можно больше данных сразу и кэшировать их локально. Это означало бы, что ваши данные не всегда полностью актуальны, но это может быть приемлемо в вашем случае использования.