- 之前在使用ORM做复杂查询时觉得写起来不如原生SQL方便
- 在此转一个觉得很好的查询结果转字典的方法
from django.db import connections
def fetchall_to_dict(sql, params=None, db='default'):
"""
返回全部数据
:param sql: sql语句
:param params: sql语句参数
:param db: Django数据库名
:return: 例如:[{"id": id, "username": 'username', "first_name": 'first_name'}]
"""
cursor = connections[db].cursor()
cursor.execute(sql, params)
desc = cursor.description
object_list = [
dict(zip([col[0] for col in desc], row))
for row in cursor.fetchall()
]
cursor.close()
return object_list