2014-12-05 74 views
0

如何使用python获得使用freebase名称的查询中的别名列表?Freebase查询使用python获取别名

例如,下面的查询

[{ 
    "name": "citigroup", 
    "/common/topic/alias": [] 
}] 

{ 
    "result": [ 
    { 
     "/common/topic/alias": [ 
     "Citigroup Inc.", 
     "TRAVELERS GROUP INC", 
     "CITIGROUP INC", 
     "TRAVELERS INC", 
     "Citi" 
     ], 
     "name": "Citigroup" 
    }, 
    { 
     "/common/topic/alias": [], 
     "name": "Citigroup" 
    } 
    ] 
} 

我想要的清单

["Citigroup Inc.", 
"TRAVELERS GROUP INC", 
"CITIGROUP INC", 
"TRAVELERS INC", 
"Citi"] 

service_url = 'https://www.googleapis.com/freebase/v1/search' 
query = { "name": "citigroup", "/common/topic/alias": []} 

params = [{ 'query': json.dumps(query), 'key': key, 'limit':5}] 

url = service_url + '?' + urllib.urlencode(params) 
response = json.loads(urllib.urlopen(url).read()) 
尝试10

但是,响应不会产生任何东西......任何帮助将不胜感激!由于

+0

尝试将服务网址更改为“https://www.googleapis.com/freebase/v1/mqlread” – Gunjan 2014-12-11 06:12:29

回答

0

试试这个代码

import urllib, json 

service_url = 'https://www.googleapis.com/freebase/v1/mqlread' 
query = [{ "name": "citigroup", "/common/topic/alias": []}] 

params = { 'query': json.dumps(query), 'key': key, 'limit':5} 

url = service_url + '?' + urllib.urlencode(params) 
response = json.loads(urllib.urlopen(url).read()) 
print response 

基本上查询应以列表形式来问,这是你的查询不止一个结果,而不是进入字典的形式。