Python 如何以可读的方式从rdflib打印术语文字?
我刚开始使用rdflib,我有一个程序,需要得到这个例子中一个人的出生日期,Lewis Carroll。但是,当我尝试打印它打印的日期时,我的程序会这样做: rdflib.term.Literal'1832-01-27',数据类型=rdflib.term.URIRef 我相信有一种简单的方法可以打印日期,但我还没有找到方法。 如果有任何关联,我的代码如下:Python 如何以可读的方式从rdflib打印术语文字?,python,printing,sparql,dbpedia,rdflib,Python,Printing,Sparql,Dbpedia,Rdflib,我刚开始使用rdflib,我有一个程序,需要得到这个例子中一个人的出生日期,Lewis Carroll。但是,当我尝试打印它打印的日期时,我的程序会这样做: rdflib.term.Literal'1832-01-27',数据类型=rdflib.term.URIRef 我相信有一种简单的方法可以打印日期,但我还没有找到方法。 如果有任何关联,我的代码如下: # open a graph graph = rdflib.Graph() # load some data graph.parse('h
# 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)
以下是一种打印查询日期的方法:
>>> for row in qres:
... d = str(row.asdict()['birth'].toPython())
... print(d)
...
1832-01-27
>>>
我从中得到的一些线索是中记录的rdflib.query.ResultRow.asDict和中记录的rdflib.term.Literal.toPython
请注意,row.asdict['birth'].toPython是一个datetime.date对象。您可以通过如下方式访问它:row[0][rdflib.term.Literal][0]?我不知道,asdict方法是不必要的。您可以打印行['birth'].topyton或打印行.birth.topyton。假设这些值可以通过变量名访问,或者作为属性,或者作为项:行.b和行[b]是等效的。。