是否有可靠的 python 库来获取 BibTex 条目并将其输出为特定格式



我正在使用Python和Django为网站开发。我想获取BibTex条目并以3种不同的格式(MLA,APA和Chicago)将其输出到视图中。是否有一个库已经这样做了,或者我将不得不手动进行字符串格式化?

有以下项目:

  • Bibtex解析器
  • Pybtex
  • Pybliographer
  • 婴儿围兜

如果您需要复杂的解析和输出,建议使用 Pybtex。例:

>>> 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

祝你好运。

尝试过它们之后,所有这些项目都很糟糕,原因有很多:糟糕的 API、糟糕的文档以及无法解析有效的 BibTeX 文件。你想要的实现没有出现在大多数谷歌搜索中,从我自己的搜索中:它是biblib。自述文件中的这段文字应该卖掉它:

市面上有很多BibTeX解析器。它们中的大多数都是完全无稽之谈,基于模块作者编造的一些虚构语法,这些语法几乎但不完全是,与BibTeX的实际语法完全不同。BibTeX有一个语法。它甚至非常简单,尽管它可能不是你认为的那样。BibTeX语法中最难的部分是它只写在一个地方:BibTeX源代码。

使用 pybtex 的公认答案充满了危险,因为 Pybtex 甚至不保留简单的 bibtex 文件的 bibtex 格式。(https://bitbucket.org/pybtex-devs/pybtex/issues/130/need-to-specially-represent-bibtex-markup)

因此,Pybtex 在读取和重写简单的 .bib 文件而不进行任何更改时会丢失 bibtex 信息。用户应该非常小心地遵循使用pybtex的建议。

我也会尝试biblib并报告,但应该编辑接受的答案以不推荐pybtex。

编辑:我能够使用Bibtex解析器导入数据,而不会丢失任何数据。但是,我必须从 https://github.com/sciunto-org/python-bibtexparser 进行编译,因为当时通过 pip 安装的版本被窃听了。用户应验证 pip 是否获得最新版本。

至于导出,一旦通过BibTex解析器导入数据,它就会在字典中,并且可以根据需要导出。BibTex 解析器没有用于以通用格式导出的内置函数。由于我不需要此功能,因此我没有专门对其进行测试。但是,一旦导入字典,字符串输出就可以相当容易地转换为任何引文格式。

在这里,pybtex 和自定义样式文件可以提供帮助。我使用了期刊提供的样式文件并在LaTeX中编译,但是PyBtex具有python样式文件(但也允许摄取.sty文件)。因此,我建议采用Bibtex Parser输入并将其传输到PyBtex(或类似)以某种样式输出。

我知道的最接近的是pybtex

最新更新