Я использую API для выполнения HTTP-запросов, которые возвращают JSON. Вызывающий АФИ, однако, зависит от начала и конца страницы должны быть указаны, например, как это:Асинхронные запросы JSON в Python
def API_request(URL):
while(True):
try:
Response = requests.get(URL)
Data = Response.json()
return(Data['data'])
except Exception as APIError:
print(APIError)
continue
break
def build_orglist(start_page, end_page):
APILink = ("http://sc-api.com/?api_source=live&system=organizations&action="
"all_organizations&source=rsi&start_page={0}&end_page={1}&items_"
"per_page=500&sort_method=&sort_direction=ascending&expedite=1&f"
"ormat=json".format(start_page, end_page))
return(API_request(APILink))
Единственный способ узнать, если вы не дольше на существующей странице, когда JSON будет null, например this.
Если я хотел сделать несколько build_orglist
, переходя через каждую страницу асинхронно, пока не дойду до конца (Null JSON), как я могу это сделать?
Взгляните на многопроцессорность Python: http://gouthamanbalaraman.com/blog/python-multiprocessing-as-a-task-queue.html –
@AlexReynolds У меня был быстрый взгляд на многопроцессорность раньше, что действительно меня беспокоит что я просто не могу сделать логику для этого. Раньше я никогда не работал с параллелизмом, и это доказывает, что это немного сложно. Я просто не могу сформулировать логику этого в моей голове большую часть времени. –
theres 'asyncio' в python 3, Tornado: http://www.tornadoweb.org/en/stable/ и другие async libs ... – postelrich