2015-06-20 3 views
0

Так что я генерироваться объект запроса с помощью SQLAlchemy как так (где create_session() является функцией я написал):Формат вывода объекта запроса атрибутов

sess = create_session(test_db) 
q = sess.query(A).all() 

Затем, после создания этого объекта (который сам по себе является список объектов) Я перебираю его, чтобы получить информацию. Скажем, мне нужен атрибут id из каждого объекта в списке, я просто делаю это.

for row in q: 
    print row.id 

Это дает мне выход:

1 
2 
3 
4 

Однако, теперь я хочу, чтобы создать список всех идентификаторов. Итак, я делаю это.

ks = [] 
for row in q: 
    ks.append(row.id) 

Печать списка я получаю:

[1L, 2L, 3L, 4L] 

Почему форматирование отличается? И есть ли способ добавить простые числа в мой список? Конечной целью является создание словаря с идентификаторами в виде ключей, а затем весь объект (из исходного списка, возвращаемого моим запросом) в качестве значения. Я мог бы просто использовать некоторые строковые методы, чтобы получить их до простых целых чисел, но было бы проще, если бы я мог получить их в желаемой форме напрямую. Благодарю.

ответ

0

Ну, проблема была такой же простой, как применение метода int() к моему id.

ks = [] 
for row in q: 
    ks.append(int(row.id)) 

Однако я все еще не уверен, почему идентификаторы возвращаются в этом нечетном формате. Может ли кто-нибудь дать представление?