Как получить все данные из Python Запрашивает ответ при большом объеме данных? - PullRequest
0 голосов
/ 12 февраля 2020

Я использую Python 3.7.6 и модуль «запросы» (v2.22.0), чтобы получить некоторые игровые данные из API игры publi c. У меня не было проблем с получением небольших объемов данных, но я столкнулся с проблемой с большими объемами данных.

Используя следующий URL в браузере: https://api.guildwars2.com/v2/commerce/listings/19683, я получаю хороший JSON список в браузере, показывающий книгу заказов внутриигрового товара. Это довольно длинный список.

При попытке захвата данных с использованием Python и модуля запросов извлеченные данные усекаются. Похоже, что запросы не возвращают весь набор данных.

Используемый код:

import json
import requests
URL = 'https://api.guildwars2.com/v2/commerce/listings/19683'
response = requests.get(url=URL, params=None)
response.status_code
response.headers
response.content
response.text
response.json()
jsonApiData = response.json()

Когда я проверяю данные из строк response.content и response.text, очевидно, что данные были усечены. Это очень заметно при просмотре объекта json из response.json. После копирования данных из браузера в Atom и сравнения количества символов с response.json создается впечатление, что ответ на запрос не был полностью проанализирован или усечен.

Я просматривал документы запросов ( https://requests.readthedocs.io/en/master/) для максимального количества символов и не найдено никаких ограничений.

Я все еще довольно новичок с JSON и запросами, но не сталкивался с подобными вещами, даже когда загружал 100 МБ данных в виде изображений из других API.

Кто-нибудь имел дело с такая ситуация? Как я могу получить весь набор данных? Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 13 февраля 2020

Проблема здесь в интерактивном буфере i python в VS Code. У него максимальный предел персонажа, который я превышал. Забавно то, что, поскольку я выполняю все свои операции по кодированию и отладке в VSCode, проблема с буфером затрагивала обе стороны - кодирование и отладку, создавая впечатление, что это затронуло сами данные.

Как только я открываю JSON в других инструментах я вижу полный набор данных. Думаю, мне следует время от времени выходить из VSCode.

Я могу опубликовать запрос функции в Microsoft GIT для этого. Должен быть визуальный индикатор, показывающий, что данные скрыты. (Очень похоже на эллипсы в Pandas Dataframes.) Как таковые, данные просто вырезаны и размещены с жестким переходом. enter image description here

0 голосов
/ 12 февраля 2020

Данные могли быть усечены в атоме.

Я бы сказал, считать ключи словаря. Это даст вам лучшее представление о том, что фактические данные усекаются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...