每当我尝试使用以下代码将三元组添加到商店时,它会给我以下错误。在这方面你能帮我吗?提前谢谢。
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)
答案 0 :(得分:1)
看来你必须传递至少3个参数。在该模块的documentation中,您可以看到需要add
方法的参数:
(abc, FOAF['knows'],def)
是你的三倍?在这种情况下,您还需要两个:context
和quoted
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)
,看看是否会导致新错误。