App Engine Datastore에 큰 계층 적 데이터 세트가 있습니다. 계층 구조는 단순히 그래서 같은 최상위 요소 키를 아는하여 전체 트리를 당길 수 있도록, 엔티티 그룹의 데이터를 저장하여 보존 :App Engine Datastore에서 JSON으로의 계층 적 데이터 출력?
query = db.Query().ancestor(db.get(key))
질문 : 어떻게 출력에게 지금이 데이터 등을 JSON 및 계층 구조를 유지 하시겠습니까?
Google에는 simplejson에 데이터 저장소 쿼리 결과에 대한 지원을 추가하는 GqlEncoder라는 유틸리티 클래스가 있지만 기본적으로 데이터를 병합하여 계층을 파괴합니다.
제안 사항? 코드의 나머지 부분은 사용 목적에 괜찮
if isinstance(obj, db.GqlQuery):
return list(obj)
동안 :
'상위'의 문제이며 계층 구조로 허용됩니다. 기존 라이브러리를 수정할 수는 있지만 이미 지원 한 라이브러리가 있는지 여기에서 먼저 확인하겠습니다. – Christian
@Christian, 좋은 생각이지만, 나는 하나도 몰라. 나는 그'list (obj)'를 별도의 메소드로 추출하여 기본 클래스가 변경되지 않은 기능을 가질 수 있고 서브 클래스가 메소드를 오버라이드하고 필요한 추가 처리를 수행 할 수 있도록 제안한다. (당신이 중첩 된 list-of-list ?), 기본 클래스의 기능 중 99 %를 다시 사용하는 등 - 패치가 앱 엔진의 오픈 소스 부분에 채택 될 수 있으며 이후에 직접 유지 관리하지 않아도됩니다. –