#python #podio
#python #podio
Вопрос:
from pypodio2 import api
# Authenticate as App
podio_client = api.OAuthAppClient(
client_id=PODIO_CLIENT_ID,
client_secret=PODIO_CLIENT_SECRET,
app_id=PODIO_APP_ID,
app_token=PODIO_APP_TOKEN,
)
# Set limit to 100
items = podio_client.Item.filter(app_id=PODIO_APP_ID, attributes={}, limit=100)
В моем приложении всего 251 элемент, и я ожидаю, что API вернет 100 элементов, но он возвращает только 20… Как это исправить?
печать (элементы [‘total’])
251
печать (элементы [‘filtered’])
251
print(len(items[‘items’])
20
Обновить
Я попробовал это с помощью библиотеки запросов, но все равно безуспешно…
import requests
payload = {
"filters":{},
"limit": 30
}
resp = requests.post(url="https://api.podio.com/item/app/randomappid/filter/",
headers={'authorization': 'OAuth2 randomn0mber'},
data=payload)
len(соответственно.json()[‘items’])
20
Документы по вызову API: https://developers.podio.com/doc/items/filter-items-4496747
Комментарии:
1. Можете ли вы опубликовать фрагмент вашего объекта items? на первый взгляд кажется, что ваш объект items имеет ключ «items», который содержит 20 элементов.
2. Объект
items
имеет три ключа: total, filtered и items.Total
указывает, сколько элементов имеется в приложении,filtered
указывает, сколько элементов осталось после применения фильтра, иitems
содержит все элементы. Я хочу получить 251 элемент, не применяя фильтра, я добавил ограничение в 100, чтобы показать, что оно нарушено, потому что я получаю только 20 элементов.3. Разве элементы [‘filtered’] не должны также возвращать 100 элементов?
4. @nimish666 Он содержит только целое число.
Ответ №1:
limit
необходимо передать через attributes
параметр.
# Set limit to 100
items = podio_client.Item.filter(app_id=PODIO_APP_ID, attributes={"limit": 100})
Ответ №2:
Не идеально, но с помощью устаревшего вызова API я получаю желаемые результаты… Все равно хотелось бы знать, как это сделать, используя вызов filter api.
params = {"limit": 300}
resp = requests.get(url="https://api.podio.com/item/app/randomappid/",
headers={'authorization': 'OAuth2 randomn0mber'},
params=params)
len(соответственно.json()[‘items’])
251