Python RDF 库 - 节点的字符串值

Python RDF lib - String value for nodes

我正在使用 RDF 库从在线三重存储中检索值。

我想知道将 URIRef 和 Literals 转换为纯字符串对象的理想方法是什么?

例如:

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

我应该使用 value.n3() 还是 value.__str__()?有什么区别吗?在我的测试中,两者 return 看起来都一样。

一开始我只是存值,后来发现比较字符串的时候会出问题,所以我想只存一个字符串,因为提取后没有rdf相关的处理。

如果您想要文字的字符串内容,请使用 str(value)。请注意,这会丢弃一些信息——数据类型和语言——它们是 RDF 模型的一部分。

比较:

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

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

给出:

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

听起来你想要前者。

有关 n3() 方法 returns 的更多详细信息,请参阅 pydoc3 rdflib.term.Literal.n3