2014-05-25 2 views
-2

GAE의 검색 API 쿼리에서 json으로 전체 결과 집합을 직렬화하려면 어떻게해야합니까? 저는 파이썬과 표준 라이브러리를 사용하고 있습니다.GAE, 검색 API, JSON 직렬화에 대한 문서

필자는 내 결과를 얻었다 :

index = search.Index(name=Myindex) 
query_string = "amount > 0"   
results = index.search(query_string) 
json_results = {} 

나는 그들을 통해 반복하고 비트에 의한 JSON 출력 비트를 만들려고,

for i in results: 
    x = {'result': 
     {'name' : i.field('name').value, 
     'value' : i.field('value').value 
     'geo' : i.field('location').value 
     }} 
    json_results = dict(list(json_results)+list(x)) 

json.dump(json_results,self.response.out) 

을하지만 난 코딩과 단지 교육에 완전히 새로운 해요 나는이 프로젝트를 진행하면서 저 자신을 보았습니다 ... 필자는 지난 며칠 동안 모든 방법을 시도해 보았습니다. 간단한 방법이 있어야합니다.

+0

, 주셔서 감사합니다 asistance에 대한 – user16928

답변

0

올바른 경로에 있지만 코드에 몇 가지 오류가 있습니다. 결과가 들어있는 사전의 정렬 된 목록을 다시 전달한다고 가정합니다. dicts의 사전 및 외부 사전은 모두 동일한 키 "결과"를 공유합니다. 즉, 하나의 항목으로 끝납니다.

json_results = [] 
for i in results: 
    x = {'name' : i.field('name').value, 
     'value' : i.field('value').value 
     'geo' : i.field('location').value} 

    json_results.append(x) 

self.response.write(json.dumps(json_results,self.response.out)) 

또한 당신이 적절하게 헤더에 콘텐츠 유형을 설정하는 것이 좋습니다. 올바른 유형은 SO 질문 What is the correct JSON content type?을 참조하십시오. 답변을 편집

+0

화려한, 많은 감사, 내가 너무 내 \t \t \t self.response.headers [ '콘텐츠 유형'] = '응용 프로그램/JSON을'얻었다 – user16928