我是python的新手。我正在尝试制作一个列表,表示从某个节点开始的分层数据,从带有rdflib的图表中查询。
这是输入文件:
@prefix ex: <http://www.w3.org/1/> .
ex:b1 ex:rel ex:a .
ex:b2 ex:rel ex:a .
ex:c ex:rel ex:b1 .
以下是代码:
from rdflib import Graph, Literal, BNode, Namespace, RDF, URIRef
from sets import Set
g = Graph()
g.parse("test.ttl", format="turtle")
ex = Namespace('http://www.w3.org/1/')
dlist = []
def totree(lst):
global dlist
if dlist == []:
dlist.append(lst)
for i in lst:
for s, p, o in g.triples((None, ex.rel, URIRef(ex + i))):
s = str(BNode(s)).replace(ex, '')
g.remove((s, p, o))
dlist.append([s])
totree([s])
if __name__ == '__main__':
totree(['a'])
print dlist
我得到了这个输出:
[['a'], [u'b1'], [u'c'], [u'b2']]
如何输出分层列表,如下所示:
[['a', [u'b1', [u'c']], [u'b2']]]
提前致谢。