您的位置:首页 > 数据库 > SQL

django执行原始查询sql,并返回Dict字典

2016-01-08 16:06 781 查看
很多时候执行sql语句,数据比django的model来的快,但并不想关心返回的字段,例如你可以执行:select * from product这种sql,这里个方法将会返回与数据库列名相同的键值对 ,格式是这样子的:

result = [{“id”:1,”name”:”product1”},{“id”:2,”name”:”product2”}]

当然你还可以

import json

json.dumps(result )

返回一串json数据,是不是很完美。。。。

# coding:utf-8
from django.db import connection, transaction

'''执行django原始sql语句  并返回一个数组对象'''
def executeQuery(sql):
cursor = connection.cursor()  # 获得一个游标(cursor)对象
cursor.execute(sql)
rawData = cursor.fetchall()
print rawData
col_names = [desc[0] for desc in cursor.description]
print col_names

result = []
for row in rawData:
objDict = {}
# 把每一行的数据遍历出来放到Dict中
for index, value in enumerate(row):
print index, col_names[index], value
objDict[col_names[index]] = value

result.append(objDict)

return result
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django sql dict json