def test_website_timestamp(self): release_timestamp = Cov19API.get_release_timestamp() api_date = self.api.last_update self.assertIn("Z", release_timestamp) self.assertNotEqual(release_timestamp, api_date) website_date = datetime.fromisoformat( release_timestamp.strip("Z")).date() api_date = datetime.fromisoformat(api_date.strip("Z")).date() self.assertEqual(website_date, api_date)
def get_nations_data(): current_update = read_last_update() if Update.last_update == '' or Update.last_update != current_update: api_all_nation = Cov19API(filters=ALL_NATIONS, structure=CASES_AND_DEATHS_NATION) api_uk_overview = Cov19API(filters=UK, structure=CASES_AND_DEATHS_NATION) Update.data_json = api_all_nation.get_json() Update.data_json_uk = api_uk_overview.get_json() api_all_nation.get_json(save_as="tmp\data_all_nation.json") Update.last_update = current_update release_timestamp = Cov19API.get_release_timestamp() Update.release_date = datetime.fromisoformat( release_timestamp.strip("Z")).strftime("%d.%m.%Y %H:%M:%S") #print(datetime.now()) #print(Update.release_date) Update.data_obj_list = convert_update_to_obj() print('inside service.get_nations_data()') return Update.data_obj_list
#print(json.dumps(head['head'][0], indent=4, sort_keys=True)) #HEAD_URL = 'https://api.coronavirus.data.gov.uk/v1/data?filters=areaType=nation&structure={"name":"areaName"}' #head = requests.head(HEAD_URL) #print(head) #print(head.headers) #head_decoded = decode(head) # head.headers['Last-Modified'] #print(head.headers['Last-Modified']) #print(json.dumps(x.json(), indent=4, sort_keys=True)) release_timestamp = Cov19API.get_release_timestamp() release_time = str(datetime.fromisoformat(release_timestamp.strip("Z")).replace(microsecond=0)) current_time = str(datetime.now().replace(microsecond=0)) print(release_time) print(current_time) #diff = current_time - current_time #print(diff.min) format = '%Y-%m-%d %H:%M:%S' d1 = datetime.strptime(current_time, format) d2 = datetime.strptime(release_time, format) delta = d1 - d2 print(delta.total_seconds())
'cumulative': 'cumCasesBySpecimenDate' } data = [] areatype_filters = ['ltla', 'overview', 'nation'] for areatype in areatype_filters: downloader = Cov19API(filters=[f"areaType={areatype}"], structure=structure) filter_data = downloader.get_json() data.extend(filter_data['data']) num_pages += filter_data['totalPages'] with open(output_csvpath, 'w') as csv_file: csv_writer = csv.writer(csv_file) csv_writer.writerow(list(data[0].keys())) for item in data: csv_writer.writerow(list(item.values())) end_time = datetime.datetime.now() log_data = { 'release_timestamp': Cov19API.get_release_timestamp(), 'start_time': str(start_time), 'end_time': str(end_time), 'download_time': str(end_time - start_time), 'total_pages': str(num_pages) } with open(output_logpath, 'w') as json_file: json_file.write(dumps(log_data)) exit(0)