2015-04-25 35 views
1

我使用RDF LIB从在线商店三重检索值的字符串值。Python的RDF LIB - 为节点

我想知道什么转动的URIref和文字为普通字符串对象的理想方式?

例如:

value = g.value(s,FOAF.page) 

我应该使用value.n3(),或value.__str__()?有什么区别吗?在我的测试中,两人都会看到相同的刺痛。

起初我只是存储的价值,但事实证明它在字符串比较引起的问题,所以我想只存储一个字符串,作为提取后没有RDF相关的处理。

回答

1

如果你想有一个文字的字符串内容,使用str(value)。请注意,这会抛弃一些RDF模型的一部分信息 - 数据类型和语言。

对于比较:

lit = rdflib.term.Literal('Literal\nvalue', lang='en') 

print(str(lit)) 
print('---') 
print(lit.n3()) 

给出:

Literal 
value 
--- 
"""Literal 
value"""@en 

这听起来像你想前者。

有关n3()方法返回什么详见pydoc3 rdflib.term.Literal.n3