我试图在Freebase中搜索一个化学元素的名称并返回它的原子量,我试图让它与一个查询和一个mql_output一起工作。
这是我的密码:
service_url = 'https://www.googleapis.com/freebase/v1/search'
params = {
'query': 'Helium',
'key': freebase_key,
'mql_output': '{"name":[],"/chemistry/chemical_element/atomic_mass":[]}',
'limit': '5'
}
url = service_url + '?' + urllib.urlencode(params)
response = json.loads(urllib.urlopen(url).read())
for result in response['result']:
logging.info('Result: {}'.format(result))这是我在日志中得到的输出:
Result: {u'relevance:score': 107.16467299999999, u'name': [u'Helium'], u'/chemistry/chemical_element/atomic_mass': [None]}
Result: {u'relevance:score': 39.270966000000001, u'name': [u'Helium-3'], u'/chemistry/chemical_element/atomic_mass': []}
Result: {u'relevance:score': 38.038089999999997, u'name': [u'Liquid helium'], u'/chemistry/chemical_element/atomic_mass': []}
Result: {u'relevance:score': 32.367195000000002, u'name': [u'Isotopes of helium'], u'/chemistry/chemical_element/atomic_mass': []}
Result: {u'relevance:score': 28.453569000000002, u'name': [u'Star'], u'/chemistry/chemical_element/atomic_mass': []}我要找的那个,唯一一个具有./原子质量特性的氦,应该给我原子质量,对吗?
相反,它只是说“无”,而如果您看自由基,它肯定具有与它相关的原子质量属性。另一个“氦”只是返回空的方括号,所以至少看起来我正在寻找的氦有一些东西,我只是没有得到它。
知道这是怎么回事吗?
非常感谢。
发布于 2014-10-20 07:02:28
您应该检查架构,以查看要查询的类型和属性,以及预期的结果类型。
在本例中,期望的类型是mass?schema=,它是一个包含两个值的对象,但没有名称(因此"None“结果)。
您可能只需将[]改为{},但如果不起作用,则查询“质量”或“不确定性”对您有兴趣(或两者都感兴趣)。
https://stackoverflow.com/questions/26446973
复制相似问题