Skip to main content

Parse RIS files into dictionaries and providetheme via generator.

Project description

It reads RIS files and provides Python dictionaries via a generator. This works also for very larg RIS files.

Usage

>>> import os
>>> from RISparser import readris
>>> from pprint import pprint

>>> filepath = 'tests/example_full.ris'
>>> entries = readris(filepath)
>>> for entry in entries:
...     pprint(entry)
{'abstract': 'BACKGROUND: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.  RESULTS: Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. CONCLUSIONS: Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.',
 'alternate_title2': 'lorem',
 'alternate_title3': 'Lorem',
 'authors': ['Marx, Karl', 'Lindgren, Astrid'],
 'file_attachments2': 'http://example.com',
 'id': '12345',
 'issn': '1932-6208',
 'keywords': ['Pippi', 'Nordwind', 'Piraten'],
 'note': '1008150341',
 'number': '3',
 'place_published': 'United States',
 'primary_title': 'Title of reference',
 'publication_year': '2014//',
 'publisher': ['Fun Factory', 'Fun Factory USA'],
 'secondary_authors': 'Glattauer, Daniel',
 'start_page': 'e0815',
 'type': 'JOUR',
 'url': 'http://example_url.com',
 'volume': '9'}
{'abstract': 'BACKGROUND: Lorem dammed ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.  RESULTS: Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. CONCLUSIONS: Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.',
 'alternate_title2': 'lorem',
 'alternate_title3': 'Lorem',
 'authors': ['Marxus, Karlus', 'Lindgren, Astrid'],
 'file_attachments2': 'http://example2.com',
 'id': '12345',
 'issn': '1732-4208',
 'keywords': ['Pippi Langstrumpf', 'Nordwind', 'Piraten'],
 'note': '1228150341',
 'number': '3',
 'place_published': 'Germany',
 'primary_title': 'The title of the reference',
 'publication_year': '2006//',
 'publisher': ['Dark Factory', 'Dark Factory GER'],
 'secondary_authors': 'Glattauer, Daniel',
 'start_page': 'e0815341',
 'type': 'JOUR',
 'url': 'http://example_url.com',
 'volume': '6'}

>>> entries = readris(filepath)
>>> entries_list = list(entries)
>>> print(len(entries_list))
2

Example RIS entry

1.
TY  - JOUR
ID  - 12345
T1  - Title of reference
A1  - Marx, Karl
A1  - Lindgren, Astrid
A1  - Glattauer, Daniel
Y1  - 2014//
N2  - BACKGROUND: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.  RESULTS: Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. CONCLUSIONS: Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.
KW  - Pippi
KW  - Nordwind
KW  - Piraten
JF  - Lorem
JA  - lorem
VL  - 9
IS  - 3
SP  - e0815
CY  - United States
PB  - Fun Factory
PB  - Fun Factory USA
SN  - 1932-6208
M1  - 1008150341
L2  - http://example.com
ER  -

TAG_KEY_MAPPING

The parser use a TAG_KEY_MAPPING, witch one can override by calling readris() with a custom mapping.

>>> import os
>>> from RISparser import readris, TAG_KEY_MAPPING
>>> from pprint import pprint

>>> filepath = 'tests/example_full.ris'
>>> mapping = TAG_KEY_MAPPING
>>> mapping["SP"] = "pages"
>>> entries = list(readris(filepath, mapping=mapping))
>>> pprint(entries[0])
{'abstract': 'BACKGROUND: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.  RESULTS: Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. CONCLUSIONS: Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium.',
 'alternate_title2': 'lorem',
 'alternate_title3': 'Lorem',
 'authors': ['Marx, Karl', 'Lindgren, Astrid'],
 'file_attachments2': 'http://example.com',
 'id': '12345',
 'issn': '1932-6208',
 'keywords': ['Pippi', 'Nordwind', 'Piraten'],
 'note': '1008150341',
 'number': '3',
 'pages': 'e0815',
 'place_published': 'United States',
 'primary_title': 'Title of reference',
 'publication_year': '2014//',
 'publisher': ['Fun Factory', 'Fun Factory USA'],
 'secondary_authors': 'Glattauer, Daniel',
 'type': 'JOUR',
 'url': 'http://example_url.com',
 'volume': '9'}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for RISparser, version 0.2
Filename, size File type Python version Upload date Hashes
Filename, size RISparser-0.2.tar.gz (6.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page