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.
Source Distribution
RISparser-0.2.tar.gz
(6.7 kB
view details)
File details
Details for the file RISparser-0.2.tar.gz.
File metadata
- Download URL: RISparser-0.2.tar.gz
- Upload date:
- Size: 6.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
728a75ed6ce4835e4c6d5562a68fdd870d6de0cc214bd0f280cf6d38f752824b
|
|
| MD5 |
115351d01fb61c58a3384d52ff3e4b6b
|
|
| BLAKE2b-256 |
23b95e114f1855dd41d7e543c05876ae84479de41db1ec61a8e1da3d9336be32
|