从Freebase API读取时如何启用扩展MQL

时间:2010-12-18 19:33:57

标签: python freebase mql

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)

这失败了,错误是“类型/类型/对象没有扩展属性”。我相信它告诉我,我实际上并没有设置扩展属性,而是试图在错误的位置进行。

1 个答案:

答案 0 :(得分:2)

答案很简单 - 将信封设置(在本例中为'extended = true')传递给mqlread函数。

result = freebase.sandbox.mqlread(query, extended=True)

当然注意T中的大写字母。