Freebase包含大量文档,但是缺少许多情况下的某些特定工作代码示例。
其中之一是如何使用其eMQL服务(在Python中使用Python Freebase库)实现查询。这是其MQL服务的扩展版本。该文档指出您需要“将信封参数设置为extended = true”,但是我无法弄清楚该怎么做(正确使用语法)。
这是我要使用的服务文档:http://www.freebase.com/docs/mql_extensions/common#service
这是我尝试使用扩展服务开始工作的代码示例:
query = {
"extended": True,
"query": [{
"id": "/en/settlers_of_catan",
"/common/topic/weblink": [{
"description": "Wikipedia",
"url": None
}]
}]
}
result = freebase.sandbox.mqlread(query)
这将失败,并出现错误“类型/类型/对象没有扩展的属性”。我相信这告诉我,我实际上并不是在设置扩展属性,而是试图在错误的位置进行操作。
最佳答案
答案很简单-将信封设置(在本例中为“ extended = true”)传递给mqlread函数。
result = freebase.sandbox.mqlread(query, extended=True)
当然,请注意True中T的大写。
关于python - 从Freebase API读取时如何启用扩展MQL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4479748/