如何以可读的方式从rdflib打印term literal?

2024-06-13 20:06:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚开始使用rdflib,我有一个程序需要获取一个人的出生日期(在本例中,Lewis Carroll)。我的程序会这样做,但是当我试图打印它打印的日期时: (rdflib.term.Literal('1832-01-27',数据类型=rdflib.term.URIRef('http://www.w3.org/2001/XMLSchema#date'),)

我相信有一种简单的方法可以打印出日期,但我还没找到方法。 如果有关系的话,我的代码是:

# open a graph
graph = rdflib.Graph()

# load some data
graph.parse('http://dbpedia.org/resource/Lewis_Carroll')

qres = graph.query(
    ("PREFIX dbpedia: <http://dbpedia.org/resource/>\n"
     "PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>\n"
     "PREFIX foaf: <http://xmlns.com/foaf/0.1/>\n"
     "SELECT ?birth WHERE {\n"
     "        ?person dbpedia-owl:birthDate ?birth . \n"
     "        ?person foaf:givenName ?givenName  . \n"
     "        ?person foaf:surname ?surname . \n"
     "        VALUES ?person { dbpedia:Lewis_Carroll }\n"
     "       }"
     ))

print("the graph has %s statements" % len(qres))

for row in qres:
    print(row)

Tags: 方法org程序httpprefixresourcerdflibgraph
1条回答
网友
1楼 · 发布于 2024-06-13 20:06:48

以下是从查询中打印日期的方法:

>>> for row in qres:
...     d = str(row.asdict()['birth'].toPython())
...     print(d)
...
1832-01-27
>>>

我得到的一些线索是rdflib.query.ResultRow.asDict()记录在http://rdflib.readthedocs.org/en/latest/_modules/rdflib/query.html和rdflib.term.Literal.toPython()记录在http://rdflib.readthedocs.org/en/latest/apidocs/rdflib.html中。在

请注意行.asdict()['birth'].toPython()是一个日期时间.日期对象。在

相关问题 更多 >