1

Freebase 包含大量文档,但缺少一些适用于许多场景的工作代码的具体示例。

其中之一是如何使用他们的 eMQL 服务实现(在 Python 中,使用 Python Freebase 库)查询。这是他们 MQL 服务的扩展版本。文档指出您需要“将信封参数设置为扩展 = 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)

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

4

1 回答 1

2

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

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

当然要注意 True 中 T 的大写。

于 2010-12-19T19:52:31.143 回答