PubMed Entrez-API mit Python durchsuchen und Ergebnisse nach Metadaten filtern
Wenn auf die Suchergebnisse von PubMed mehr Filter angewendet werden sollen als in der Weboberfläche verfügbar, kann die Entrez-API verwendet werden.
Das folgende Beispiel zeigt, wie alphabetisch nach dem Journal sortiert werden kann, in dem die Artikel ursprünglich erschienen sind.
Ich empfehle, die Daten im .json-Format zu verarbeiten.
pubmed_filter.py
import requests
import json
db = 'pubmed'
domain = 'https://www.ncbi.nlm.nih.gov/entrez/eutils'
nresults = 10
query = "depression"
retmode='json'
# standard query
queryLinkSearch = f'{domain}/esearch.fcgi?db={db}&retmax={nresults}&retmode={retmode}&term={query}'
response = requests.get(queryLinkSearch)
pubmedJson = response.json()
results = []
for paperId in pubmedJson["esearchresult"]["idlist"]:
# metadata query
queryLinkSummary = f'{domain}/esummary.fcgi?db={db}&id={paperId}&retmode={retmode}'
results.append({'paperId': paperId, 'metadata': requests.get(queryLinkSummary).json()})
# check the journalnames
# print(results[-1]["metadata"]["result"][paperId]["fulljournalname"])
resultsSorted = sorted(results, key=lambda x: x["metadata"]["result"][x["paperId"]]["fulljournalname"])
with open('resultsSorted.json', 'w') as f:
json.dump(resultsSorted, f)If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow