Metadaten von DOI.org lesen#

In diesem Notebook werden wir auf Metadaten von Einträgen auf https://doi.org zugreifen.

import requests
import json

Dafür schreiben wir eine kleine Hilfsfunktion.

def read_doi(doi):
    """
    Reads meta data of records in doi.org.
    """

    doi = doi.replace("https://doi.org/", "")
    url = "https://doi.org/api/handles/" + doi
    
    # Download the file
    response = requests.get(url)
    data = response.json()
    return data

Wir können dann die Funktion aufrufen und die Ergebnisse in einem data-Objekt speichern.

data = read_doi("https://doi.org/10.5281/zenodo.3833824")
data
{'responseCode': 1,
 'handle': '10.5281/zenodo.3833824',
 'values': [{'index': 100,
   'type': 'HS_ADMIN',
   'data': {'format': 'admin',
    'value': {'handle': '10.admin/codata',
     'index': 300,
     'permissions': '111111111111'}},
   'ttl': 86400,
   'timestamp': '2020-05-19T10:28:11Z'},
  {'index': 1,
   'type': 'URL',
   'data': {'format': 'string', 'value': 'https://zenodo.org/record/3833824'},
   'ttl': 86400,
   'timestamp': '2020-05-19T10:28:11Z'}]}

Dieses json-Objekt besteht aus Python-Dictionaries und Listen. Wir können durch diese navigieren und Informationen extrahieren.

data['values'][0]
{'index': 100,
 'type': 'HS_ADMIN',
 'data': {'format': 'admin',
  'value': {'handle': '10.admin/codata',
   'index': 300,
   'permissions': '111111111111'}},
 'ttl': 86400,
 'timestamp': '2020-05-19T10:28:11Z'}

Übung#

Finden Sie den/die Autor(en) der oben genannten DOI heraus.