как перебирать объект сущности ponyorm


Я использую ponyORM и делаю запрос к PeopleModel " например:

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 ? Большое спасибо vert,

1 2

1 ответ:

Результатом функции 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)