def parse_ieee_response(response): if not isinstance(response, str): response = response.decode('utf-8') json_response = json.loads(response) articles = json_response['articles'] ieee_data_list = [] for article in articles: url = utils.check_json_key_for_none(article, 'pdf_url') title = utils.check_json_key_for_none(article, 'title') abstract = utils.check_json_key_for_none(article, 'abstract') journal_name = utils.check_json_key_for_none(article, 'publisher') # published_date = utils.check_json_key_for_none(article, 'publication_date') # # if published_date: # published_date = published_date # datetime_object = datetime.strptime('Jun 1 2005 12:00AM', '%b %d %Y %I:%M%p') authors = [author['full_name'] for author in utils.check_json_key_for_none(article['authors'], 'authors')] authors = pap_utils.get_authors_from_list(authors) parsed_api_dict = pap_utils.get_serialized_dict(url=url, display_title=title, title=title, abstract=abstract, journal_name=journal_name, published_date=None, authors=authors, source='IEEE') ieee_data_list.append(parsed_api_dict) return ieee_data_list
def parse_plos_response(response): json_response = json.loads(response)['response'] docs = utils.check_json_key_for_none(json_response, 'docs') plos_data_list = [] for doc in docs: url = 'http://journals.plos.org/plosone/article?id=' + utils.check_json_key_for_none(doc, 'id') title = utils.check_json_key_for_none(doc, 'title_display') abstract = utils.check_json_key_for_none(doc, 'abstract')[0] journal_name = utils.check_json_key_for_none(doc, 'journal') published_date = utils.check_json_key_for_none(doc, 'publication_date') try: if published_date: datetime_object = datetime.strptime(published_date, '%Y-%m-%dT%H:%M:%SZ') published_date = datetime_object.strftime('%Y-%m-%d') except: published_date = '' authors = utils.check_json_key_for_none(doc, 'author_display') authors = pap_utils.get_authors_from_list(authors) parsed_api_dict = pap_utils.get_serialized_dict(url=url, display_title=title, title=title, abstract=abstract, journal_name=journal_name, published_date=published_date, authors=authors, source='Plos') plos_data_list.append(parsed_api_dict) return plos_data_list
def parse_springer_data(response): # load the response as JSON json_response = json.loads(response) docs = utils.check_json_key_for_none(json_response, 'records') springer_data_list = [] for doc in docs: url = [ url['value'] for url in utils.check_json_key_for_none(doc, 'url') ] title = utils.check_json_key_for_none(doc, 'title') abstract = utils.check_json_key_for_none(doc, 'abstract') published_date = utils.check_json_key_for_none(doc, 'publicationDate') authors = [ creator['creator'] for creator in utils.check_json_key_for_none(doc, 'creators') ] authors = pap_utils.get_authors_from_list(authors) parsed_api_dict = pap_utils.get_serialized_dict( url=url[0], display_title=title, title=title, abstract=abstract, journal_name='', published_date=published_date, authors=authors, source='Springer') springer_data_list.append(parsed_api_dict) return springer_data_list