查询对象属性的输出格式

时间:2015-06-20 16:02:02

标签: python object sqlalchemy

所以我使用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

但是,现在我要创建所有ID的列表。所以,我这样做。

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

打印我得到的清单:

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

为什么格式不同?有没有办法只将简单的整数添加到我的列表中?最终目标是创建一个字典,其中id为键,然后是整个对象(从我的查询返回的原始列表)作为值。我可以使用一些字符串方法将它们归结为普通整数,但如果我可以直接将它们以所需的形式获得它会更容易。感谢。

1 个答案:

答案 0 :(得分:0)

嗯,问题就像将int()方法应用于我的id一样简单。

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

但是,我仍然不确定为什么以这种奇怪的格式返回id。任何人都可以提供见解吗?