在rdflib.store.IOMemory中添加三元组时出现问题

时间:2011-09-15 14:48:32

标签: python rdflib

每当我尝试使用以下代码将三元组添加到商店时,它会给我以下错误。在这方面你能帮我吗?提前谢谢。

store = plugin.get('IOMemory',Store)()
store.add((abc, FOAF['knows'],def))

Error:

Traceback (most recent call last):
  File "C:\Python27\internetcode.py", line 114, in <module>
  store.add((abc, FOAF['knows'],def))
TypeError: add() takes at least 3 arguments (2 given)

2 个答案:

答案 0 :(得分:1)

看来你必须传递至少3个参数。在该模块的documentation中,您可以看到需要add方法的参数:

(abc, FOAF['knows'],def)是你的三倍?在这种情况下,您还需要两个:contextquoted

add(self, triple, context, quoted) 

我发现了更多信息here

  

add(self,(subject,predicate,object),context,quoted = False)

     

将给定语句添加到特定上下文或模型。该   引用的参数由公式感知商店解释以指示   引用/假设这个陈述不应该是一个错误   指定上下文并使引用的参数为True。它也应该   当商店没有时,引用的参数为True是一个错误   式感知。

答案 1 :(得分:0)

首先,你需要知道当python说方法有3个参数时,它实际上意味着两个参数加上实例参数(通常是self)。您当前正在传递实例(store)加上三元素元组:(abc, FOAF['knows'], def),它被视为一个参数。 store.add()需要第三个参数。这就是错误消息试图告诉你的内容。我不知道它需要什么,但文档应该能够进一步解释。

如果不出意外,您可以尝试store.add((abc, FOAF['knows'], def), None),看看是否会导致新错误。