2014-03-31 63 views
2

在下面的代碼中,我希望遍歷所有userData對象的變量。我想知道如何去做。代碼,myString + = eachObject.everyElement,是我發現問題的地方。我無法弄清楚如何迭代對象的每個元素。谷歌應用程序引擎-python,迭代通過數據模型屬性

class userData(ndb.Model): 
    name = ndb.StringProperty() 
    age = ndb.IntegerProperty() 
    nationality = ndb.StringProperty() 
    date = ndb.DateTimeProperty() 

class MyApp(webapp2.RequestHandler): 
    def post(self): 
     listOfUserData = ['name', 'age', 'nationality', 'date'] 
     myString= "" 
     #Here, I have few userData objects and I wish to get all 
     #the userData perperties and form a string 
     myUserDataObjects = [userData1, userData2, userData3] 
     for eachObject in myUserDataObjects: 
      for everyElement in listOfUserData: 
       ###################################### 
       #This is the place where I need help## 
       ###################################### 
       myString += eachObject.everyElement 
     self.response.out.write(myString) 

我知道我可以寫爲 eachObject.name + eachObject.age + ...訪問的元素,但我反對這樣做,因爲如果我這樣做,我打算增加一個新的屬性到userData,我將不得不更改for循環中的代碼。相反,我只是計劃將該屬性添加到listOfUserData中,這使得它更容易。

任何建議/幫助表示讚賞。

感謝, 克里希納切塔尼亞

回答

2

使用getattr方法來得到一個對象的屬性。在您的代碼示例中,以下內容應該可以工作:

myString += getattr(eachObject, everyElement) 
相關問題