Я изучаю Python и хочу использовать API.Я делаю небольшие программы для получения информации и блокирую свою следующую программу.Я хочу создать программу для удаления всех учеников из моего школьного API.Проблема заключается в ограничении нумерации страниц, я получаю 15 пользователей, но не всех.
Я ищу документацию по использованию.Я пытаюсь получить информацию с помощью цикла «for» и конкретных параметров API:
Заголовок ответа HTTP Link содержит данные разбиения на страницы со ссылками на первую, предыдущую, следующую и последнюю необработанные страницы, когда они доступны, в разделеформат
ссылка: http://xxx.intra.xxx.fr/v2/{Resource}?page=X+1; rel = "next", http://xxx.intra.xxx.fr/v2/{Resource}?page=X-1; rel = "prev", http://xxx.intra.xxx.fr/v2/{Resource}?page=1; rel = "first", http://xxx.intra.xxx.fr/v2/{Resource}?page=X+n; rel = "last"
Проблема, я не знаю, чтобы удалить всю информацию на всех страницах, не только на первой странице.Код моей программы:
import requests
import json
import sys
from sys import argv
from operator import itemgetter, attrgetter
import json
import os
UID = 'REDACTED_USER_ID'
SECRET = 'REDACTED_SECRET_KEY'
class CONST(object):
try:
campus = sys.argv[1]
month = sys.argv[2]
year = sys.argv[3]
except:
print("Error : aucun argument")
print('Usage: "campus_id" (EX:1) "month" (july) "year" (2016)')
exit()
d = {'grant_type': 'client_credentials', 'client_id': UID, 'client_secret': SECRET}
r = requests.post("https://api.intra.xxx.fr/oauth/token", data=d)
token = r.json()['access_token']
print(token)
h = {'Authorization': 'Bearer ' + token}
get_students = requests.get('https://api.intra.xxx.fr/v2/cursus/1/users?filter[primary_campus_id]=' + campus + '&filter[pool_month]=' + month + '&filter[pool_year]=' + year + '&sort=login', headers=h)
def __setattr__(self, *_):
pass
CONST = CONST()
def campus_id(CAMPUS, MONTH, YEAR, *args):
campus = CAMPUS
if str.isnumeric(campus):
return(campus)
else:
print("Error : campus_id requiert un chiffre")
print('Usage: "campus_id" (EX:1) "month" (july) "year" (2016)')
exit()
def pool_month(CAMPUS, MONTH, YEAR, *args):
month = MONTH
if str.isalpha(month):
return(month)
else:
print("Error : pool_month requiert un mois en lettre")
print('Usage: "campus_id" (EX:1) "month" (july) "year" (2016)')
exit()
def pool_year(CAMPUS, MONTH, YEAR, *args):
year = YEAR
if str.isnumeric(year):
return(year)
else:
print("Error : pool_year requiert au moins un chiffre")
print('Usage: "campus_id" (EX:1) "month" (july) "year" (2016)')
exit()
def get_infos(CAMPUS, MONTH, YEAR, *args):
if len(argv) != 4:
print('Wrongs arguments !')
print('Usage: "campus_id" (EX:1) "month" (july) "year" (2016)')
exit()
campus = campus_id(*argv[1:], *argv[2:], *argv[3:])
month = pool_month(*argv[1:], *argv[2:], *argv[3:])
year = pool_year(*argv[1:], *argv[2:], *argv[3:])
get_level = CONST.get_students
# print(json.dumps(get_level.json(),indent=4))
level = get_level.json()
tab = []
for item in level:
tab.append(item['login'])
chain = ' \n'.join(tab)
fichier = open("test.out", "w")
fichier = open("test.out", "a")
fichier.write(chain + "\n")
fichier.close()
if __name__ == '__main__':
test = get_infos(*argv[1:], *argv[2:], *argv[3:])
print(test)
код:
for item in level:
tab.append(item['login'])
- это мой список массивов с логинами, которые я нашел (например: на данный момент у меня есть "a" "b" "c"" d "), и я хочу получить всех пользователей
пример консоли:
> api-test python3 api-test3.py "1" "september" "2017"
> api-test
> cat test.out
aaiche
abaille
abezanni
abouquet
acourtin
adfourca
adpusel