Reading from the database

The database can be queried from within Python using the crossref_lmdb.DBReader class. Instances of this class provide a context manager and a dict-like interface for interacting with DOIs and their metadata.

Example

import pathlib

import crossref_lmdb

# assuming the database is located in the `db` subdirectory
# at the current location
db_dir = pathlib.Path("db/")

with crossref_lmdb.DBReader(db_dir=db_dir) as reader:

    # fast access to the number of items
    print(f"Number of items in database: {len(reader)}")

    # a reference to the most recently-indexed item is stored
    # in the database
    print(f"Most recently-indexed item: {reader.most_recent_indexed}")

    # dict-like access to metadata for a given DOI
    doi_metadata = reader["10.7717/peerj.1038"]

    # dict-like iteration over (key, value) pairs
    for (doi, metadata) in reader.items():
        break

    # dict-like iteration over keys (DOIs)
    for doi in reader:
        break

    # dict-like iteration over values (metadata)
    for metadata in reader.values():
        break