如何将 biblib 解析器与存储在 pyhon 变量中的 bibtex 文件一起使用?

How to use the biblib parser with a bibtex file stored in a pyhon variable?

我有一个从前端获取的 bibtex 文件,我正在尝试使用 biblib(一个 python 库来解析 bibtex 文件)来解析这个文件。因为我从前端获取文件,所以它没有存储在我计算机上的文件中。该文件通过变量从前端传递到 python,然后存储在 python 变量 fileFromFrontend 中。所以我可以使用例如:

bibtexFile = fileFromFrontend.read() 读取文件。

现在我正在尝试执行类似以下操作以在 python 终端中打印已解析的文件:

from pybtex.database.input import bibtex

parser = bibtex.Parser()
bibtexFile= parser.parse_file(fileFromFrontend)
print (bibtexFile.entries)

但随后出现此错误:

-->bibtexFile = parser.parse_file(filesFromFrontend)
-->with open_file(filename, encoding=self.encoding) as f:
-->AttributeError: __enter__

这可能是因为解析器试图打开文件,但他不必打开这个文件,他只需要读取这个文件。我不知道 biblib 库的什么函数用于从变量解析文件,到目前为止还没有找到任何东西来解决我的问题。

希望有人能帮忙

谢谢

根据文档 (https://docs.pybtex.org/api/parsing.html) 有一些方法

parse_stringparse_bytes 可以工作。

这么喜欢

from pybtex.database.input import bibtex

parser = bibtex.Parser()
bibtexFile= parser.parse_bytes(fileFromFrontend.read())   
print (bibtexFile.entries)

我没有安装pybtex,所以没法自己试。但是试试那些方法。 Parse_bytes 和 parse_string 需要 bib-format 作为第二个参数。在 bibtex 的示例中,所以我在这里尝试了。