commit 4411bc1601eaf157abacd2b949abc130b96c5633 Author: Долгий Артём Date: Thu Mar 3 10:14:58 2022 +0300 init diff --git a/first_step.py b/first_step.py new file mode 100644 index 0000000..82969ef --- /dev/null +++ b/first_step.py @@ -0,0 +1,65 @@ +import json +from datetime import datetime, date + +import requests + +url = 'https://covidtrackerapi.bsg.ox.ac.uk/api/v2/stringency/actions/' +''' +01. Belarus - BLR +02. China - CHN +03. France - FRA +04. Germany - DEU +05. India - IND +06. Israel - ISR +07. Russia - RUS +08. Serbia - SRB +09. Spain - ESP +10. Turkey - TUR +''' +countries = ['blr', 'chn', 'fra', 'deu', 'ind', 'isr', 'rus', 'srb', 'esp', 'tur'] +tmp_output = {} + + +def check_date(input_date): + """ Check date format from input string. + + Args: input_date - (str). + Return: Bool - True if date correct. """ + try: + valid_date = datetime.strptime(input_date, '%Y-%m-%d').date() + if valid_date < date.today(): + return True + else: + print('Input date has not arrived yet') + return False + except ValueError: + return False + + +def request_one_country(api, cntr, day): + """ Request from api-url. + + Args: api - (str) - api url, + cntr - (str) country alpha-3 code, + day - (int) YYYY-MM-DD. + Return: Response - (dict). """ + r_out = requests.get(f'{api}{cntr}/{day}') + return r_out.json() + + +if __name__ == '__main__': + while True: + input_day = input('Input date YYYY-MM-DD): ') + if check_date(input_day): + break + else: + print('Incorrect input format') + continue + + for country in countries: + out = request_one_country(url, country, input_day) + tmp_output.setdefault(country, out.get('stringencyData')) + + output = {input_day: tmp_output} + with open('temp_out.json', 'w') as f: + json.dump(output, f, sort_keys=True, indent=2)