2014-10-19 2 views
1

화학 원소의 이름을 Freebase에서 검색하고 원자 질량을 반환하려고합니다. 쿼리 및 mql_output을 사용하여 작업하려고합니다.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': []} 

내가 찾고 하나는있는 유일한 "헬륨".. 그것과 관련된 ./atomic_mass 속성은 저에게 원자량을 주어야합니다, 맞습니까?

대신 "None"이라고 말하면서, Freebase을 보면 절대적으로 질량 속성이 있습니다. 다른 "헬륨"은 그냥 빈 대괄호를 반환하지만 적어도 헬륨은 내가 찾는 것처럼 보입니다 뭔가가 있습니다. 나는 단지 그것을 얻지 않고있다.

여기에 무슨 일이 일어나고 있는지 아십니까?

고마워요.

답변

1

쿼리 할 형식 및 속성뿐만 아니라 예상되는 결과 형식을 확인하려면 스키마를 검사해야합니다.

이 경우 예상되는 형식은 두 값을 포함하지만 이름이없는 개체 (따라서 "없음"결과) 인 https://www.freebase.com/chemistry/atomic_mass?schema=입니다.

당신은 바로 [] 당신에게 관심의에 [{}],하지만 문제가 해결되지 않을 경우, 쿼리 "대량"또는 "불확실성"의 어느 위해 (또는 둘 다)

을 변경할 수 있습니다
관련 문제