2014-10-19 3 views
1

Я пытаюсь найти Freebase для имени химического элемента и вернуть его атомную массу, и я пытаюсь получить это для работы с запросом и mql_output.Видимо пустой результат из Freebase mql_output search

Вот мой код:

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': []} 

Тот, что я ищу, только «Гелий», который имеет .. ./atomic_mass, связанная с ним, должна дать мне атомную массу, не так ли?

Вместо этого он просто говорит «Нет», в то время как если вы посмотрите на Freebase, он определенно имеет свойство атомной массы, связанное с ним. Другой «Гелий» просто возвращает пустые квадратные скобки, хотя, по крайней мере, похоже, что у гелия, который я ищу, есть что-то; Я просто не понимаю.

Любая идея, что здесь происходит?

Большое спасибо.

ответ

1

Вы должны проверить схему, чтобы увидеть не только те типы и свойства, которые требуются, но и то, что ожидаемый тип результата.

В этом случае ожидаемый тип: https://www.freebase.com/chemistry/atomic_mass?schema=, который представляет собой объект, содержащий два значения, но не имя (таким образом, результат «Нет»).

Вы можете просто изменить [] в [{}], но если это не сработает, запрос на какой из «массы» или «неопределенности» представляет интерес для вас (или оба)

 Смежные вопросы

  • Нет связанных вопросов^_^