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
。
我正在使用 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
。