2017-02-21 61 views
2

Я использую ponyORM и я сделать запрос к PeopleModel», например:как перебираются ponyorm объекта сущности

first_name = "avi" 
sqlObject = select(p for p in PeopleModel if raw_sql('(lower(first_name) = lower($first_name)) 

объект SQLObject вернуть список PeopleModel, как ожидалось, и его идеальный Теперь я хочу. печатать все значения PeopleModel, я ожидал что-то подобное для работы:

for people_model_key,people_model_value in sqlObject.items(): 
    print(people_model_value) 

Но он не работает ..

Как я мог печатать все значения people_model? Спасибо Верт много,

ответ

2

Результат select функции является объектом запроса:

first_name = "avi" 
people = select(p for p in PeopleModel 
       if raw_sql('(lower(first_name) = lower($first_name)) 

Это не словарь, поэтому он не имеет items метода. Если вы повторите его, вы получите объекты. Вы можете получить доступ к объектам атрибутов обычным способом:

for person in people: 
    print('name:', person.name) 
    print('age:', person.age) 

Если вы хотите, чтобы преобразовать объект в словарь, вы можете использовать to_dict метод:

for person in people: 
    for key, value in person.to_dict().items(): 
     print(key, value) 
+0

Спасибо. to_dict() работает – Yan