我正在使用Python和Django开发一个网站。我想拿一个BibTex条目并以3种不同的格式输出它,MLA,APA和Chicago。是否有一个库已经这样做了,或者我将不得不手动进行字符串格式化?
答案 0 :(得分:11)
有以下项目:
如果您需要复杂的解析和输出,建议使用Pybtex。 Example:
>>> from pybtex.database.input import bibtex
>>> parser = bibtex.Parser()
>>> bib_data = parser.parse_file('examples/foo.bib')
>>> bib_data.entries.keys()
[u'ruckenstein-diffusion', u'viktorov-metodoj', u'test-inbook', u'test-booklet']
>>> print bib_data.entries['ruckenstein-diffusion'].fields['title']
Predicting the Diffusion Coefficient in Supercritical Fluids
祝你好运。
答案 1 :(得分:4)
经过尝试,所有这些项目都很糟糕,原因有很多:糟糕的API,糟糕的文档以及无法解析有效的BibTeX文件。您想要的实施并非在我自己的搜索中显示在大多数Google搜索中:biblib。 README的这篇文章应该卖掉它:
那里有很多BibTeX解析器。根据模块作者构成的一些虚构语法,它们中的大多数都是完全无意义的,这几乎与但不完全不同于BibTeX的实际语法。 BibTeX有语法。它甚至非常简单,尽管它可能不是你想象的那样。 BibTeX语法中最难的部分是它只写在一个地方:BibTeX源代码。
答案 2 :(得分:0)
我所知道的最接近的是pybtex
包
答案 3 :(得分:0)
使用pybtex的公认答案充满了危险,因为Pybtex甚至不保留简单的bibtex文件的bibtex格式。 (https://bitbucket.org/pybtex-devs/pybtex/issues/130/need-to-specially-represent-bibtex-markup)
因此,Pybtex在读取和重写简单的.bib文件时没有进行任何更改就丢失了bibtex信息。用户应遵循使用pybtex的建议非常谨慎。
我也将尝试使用biblib并进行报告,但应编辑接受的答案以不推荐pybtex。