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/

10-13 01:01