您好我想解析一个 bibtex 出版物文件并对特定字段(例如年份)进行排序并过滤某些内容,然后将其放在网站上。我遇到了 pybtex,它可以读取和解析 bibtex 文件,但它基本上没有记录,我不知道如何对条目进行排序。
pybtex 是要走的路(我如何对条目进行排序)还是有更好的选择?
多谢!!
您好我想解析一个 bibtex 出版物文件并对特定字段(例如年份)进行排序并过滤某些内容,然后将其放在网站上。我遇到了 pybtex,它可以读取和解析 bibtex 文件,但它基本上没有记录,我不知道如何对条目进行排序。
pybtex 是要走的路(我如何对条目进行排序)还是有更好的选择?
多谢!!
找到了一个解决方案,这使用pybtex按降序对条目进行排序,最新的出版物排在第一位:
from pybtex.database.input import bibtex
from operator import itemgetter, attrgetter
import pprint
parser = bibtex.Parser()
bib_data = parser.parse_file('ref.bib')
def sort_by_year(y, x):
return int(x[1].fields['year']) - int(y[1].fields['year'])
bib_sorted = sorted(bib_data.entries.items(), cmp=sort_by_year)
for key, value in bib_sorted:
print key
print value.fields['year']
print value.fields['author']
print value.fields['title']