django:convert queryset into list of dicts
django,convert,queryset,into,list,of,dicts
2025-03-28 09:01:07 时间
要件:
#convert queryset into list of dicts
#【Django】QuerySetを辞書型(dict)のlistに変換する
1,通过模型(Model)类的Manager,获取Queryset
>>> from pur.models import Document
>>> doc = Document.objects.filter(id__gte=100).all()
>>> doc
<QuerySet [<Document: Document object (100)>, <Document: Document object (101)>]>
2,期待结果:
[{'id': 100, 'name': 'EMS20220707.pdf'}, {'id': 101, 'name': '三菱オンライン入会申込.pdf'}]
对策:
Use the.values()
method, 返回结果仍为Queryset,再用list
转换一下即可。
>>> doc = Document.objects.filter(id__gte=100).values('id','name')
>>> doc
<QuerySet [{'id': 100, 'name': 'EMS20220707.pdf'}, {'id': 101, 'name': '三菱オンライン入会申込.pdf'}]>
>>> type(doc)
<class 'django.db.models.query.QuerySet'>
①全项目取得
>>> doc = Document.objects.filter(id__gte=100).all()
>>> ld=list(doc.values())
>>> ld
[{'id': 100, 'type': '支払申請', 'no': 0, 'name': 'EMS20220707.pdf', 'folder': ''},
{'id': 101, 'type': '支払申請', 'no': 0, 'name': '三菱オンライン入会申込.pdf', 'folder': ''}]
②指定項目取得
>>> ld=list(doc.values('id','name'))
>>> ld
[{'id': 100, 'name': 'EMS20220707.pdf'}, {'id': 101, 'name': '三菱オンライン入会申込.pdf'}]
补充:
只取得值,不要key,用values_list() ,
括号内可传指定转换项目。同样返回结果为Queryset,需要list转换。
>>> doc.values_list('id','name')
<QuerySet [(100, 'EMS20220707.pdf'), (101, '三菱オンライン入会申込.pdf')]>
>>> list(doc.values_list('id','name'))
[(100, 'EMS20220707.pdf'), (101, '三菱オンライン入会申込.pdf')]
补充说明:参照检索对象
检索对象
要从数据库检索对象,要通过模型类的 Manager
构建一个 QuerySet
。
一个 QuerySet
代表来自数据库中对象的一个集合。
它可以有 0 个,1 个或者多个 filters. Filters,可以根据给定参数缩小查询结果量。
在 SQL 的层面上, QuerySet
对应 SELECT
语句,而*filters*对应类似 WHERE
或 LIMIT
的限制子句。
你能通过模型的 Manager
获取 QuerySet
。每个模型至少有一个 Manager
,默认名称是 objects
。直接通过模型类使用它
相关文章
- pycharm django环境搭建_挣钱项目
- Django的请求与响应
- 博客将 Django 1.11+ 升级到 Django 2.2+ 遇到的问题及规避方法
- Python进阶35-Django Auth组件
- django:Content-Disposition filename:日本語 pdf csv output
- pycharm中安装django_pycharm环境配置教程
- 一个Django项目:搭建基本自动化运维平台[通俗易懂]
- 在 Linux 服务器上使用 Nginx + Gunicorn 部署 Django 项目的正确姿势
- django migrate 常见错误总结 and 对应方法
- 使用python的Django库开发一个简单的数据可视化网站(一)- 基本环境安装及配置
- 【Django | 开发】面试招聘信息网站(处理产品细节和权限&美化页面样式)
- Django-缓存内容
- 一个提供公告和打赏功能的 django 应用插件 django-tctip
- Python进阶31-Django 分页器
- pycharm django环境搭建_IDEA如何创建项目
- Python进阶37-smtp及Django发邮件
- Python进阶33-Django cookie和session
- Django的设计模式
- Django如何处理URL请求
- Django的ORM操作-更新数据