python - 从 SQLalchemy 查询对象访问数据?
问题描述
我在 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
推荐阅读
- javascript - 我可以使用 v-model 以外的方法获取 v-text-field 中的数据吗?
- javascript - 为什么在使用 prevState 而不是简单的 setState 时需要进行深拷贝?
- sql - 独立表类型与包内的表类型
- flutter - android studio 中存在错误,但在 flutlab.io 上工作的代码相同
- python - 如何在python中以year-mon格式获取最后三个月?
- python - 嵌套列表中的重复值
- python - 如何根据给定值删除列中的项目?
- amazon-web-services - Docker容器之间的Laravel中的Redis连接问题
- c++ - 将字符输入到 int 变量中
- google-sheets - 列作为维度的动态范围