2014-10-30 3 views
-1

DB에 쿼리하여 사전 목록으로 변환하려는 제품 목록을 가져옵니다. 그건 내 모델의 :목록에서 중첩 된 사전을 작성합니다.

result = { id: { name: name, description: description}, ... } 

내가이 작업을 수행하는 지능형리스트 구문을 사용할 수 있습니다 : 나는 결과로 원하는 사용자들은

class Product(db.Model): 
    __tablename__ = 'products' 

    id = db.Column(db.Unicode(64), primary_key=True) 
    name = db.Column(db.Unicode(2048), nullable=False) 
    descripton = db.Column(db.Unicode(2048), nullable=False) 

?

result = {p.id: {name: p.name, description: p.description for p in products.all()} 
+0

별로 사용하지만, NDB는 to_dict 방법이 있습니다 https://cloud.google.com/appengine/docs/python/ndb/modelclass#Model_to_dict –

+1

당신이 실제로 실행 봤어을 당신의 코드? 오류를 반환합니까? (그렇습니다, 당신은 당신의 구술 독해력을 완전히 닫지 않았고, 브래킷이 빠졌지 만 그 외에 - 어떤 문제가 있습니까?). –

+0

아니요. 나는 python에 익숙하지 않고 나는이 구조를 보지 못했다. 나는 내가 원하는 것을 보여주기 위해 파리에서 그것을 썼다. –

답변

1

물론 가능합니다. 받아들이십시오 :

{p.id: {name: p.name, description: p.description} for p in products.all()} 

하지만 꼭 필요한가요? 당신은 __getitem__ 방법을 재정의 할 수 있습니다 : 여기

class Product(db.Model): 
    __tablename__ = 'products' 

    id = db.Column(db.Unicode(64), primary_key=True) 
    name = db.Column(db.Unicode(2048), nullable=False) 
    descripton = db.Column(db.Unicode(2048), nullable=False) 

    def __getitem__(self, key): 
     # Code to find object in DB and transform them if you want. 
관련 문제