我在 python 中使用以下命令查询我的数据库:
self.deleted_packages = model.Session.query(
model.Package).filter_by(state=model.State.DELETED)
我正在 pkg 中访问上述值,如下所示:
for pkg in self.deleted_packages:
pkg 中的输出是:
<Package id=563e0da3-6916-4158-bc9f-f11bf92d3240
name=asdacaasas
title=asdacaasas
version= url= author= author_email= maintainer= maintainer_email= notes=
license_id=cc-by
type=dataset
owner_org=9b89900e-c4b8-413d-a8fe-edbe08641022
creator_user_id=30ad2d1c-f133-4458-9947-535e2718a898
metadata_created=2019-05-21 13:08:52.322015
metadata_modified=2019-05-21 13:08:59.946710
private=True
state=deleted
revision_id=5251e583-3a71-4189-8d4e-aaac8ac69927>
我只需要一个变量中的包 ID。当我尝试执行以下操作时: p1=[x[0] for x in pkg]
我收到以下错误:
p1=[x[0] for x in pkg]
TypeError: 'Package' object is not iterable
有人知道如何将 id 的值存储563e0da3-6916-4158-bc9f-f11bf92d3240
在上述查询结果的变量中吗?
你应该阅读SQLalchemy的文档(我从评论中得到了这个上下文)。
有几个示例可以突出您如何解决问题。
此答案中链接的文档中的一个示例(与您的具体情况无关!):
>>> for row in session.query(User, User.name).all():
... print(row.User, row.name)
输出为:
<User(name='ed', fullname='Ed Jones', nickname='eddie')> ed
<User(name='wendy', fullname='Wendy Williams', nickname='windy')> wendy
<User(name='mary', fullname='Mary Contrary', nickname='mary')> mary
<User(name='fred', fullname='Fred Flintstone', nickname='freddy')> fred
因此,在您的情况下,pkg
变量(Package
类的对象)可能类似于User
上面示例中的对象,并且name
内容由row.name
.
所以你的情况可能有类似的东西 pkg.id
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句