Django 使用原生sql后如何将数据处理成dict以及jso
2018-06-06 本文已影响0人
记录每一次BUG
def dictfetchall(cursor):
"将游标返回的结果保存到一个字典对象中"
desc = cursor.description
return [
dict(zip([col[0] for col in desc], row))
for row in cursor.fetchall()
]
def test(request):
cursor = connection.cursor()
cursor.execute(sql,None)
result = cursor.fetchall() # 结果是元祖嵌套元祖
result1 = dictfetchall(cursor) # 结果是列表里面嵌套字典
result2 = json.dumps(result1) # 结果是json
注意: result 与 result1不能同时使用
python 字典与pythonjson的区别:
简单来说,python 字典的数据格式就json的数据格式。
但本质上来讲,字典是一种数据结构,json是一种格式;字典有很多内置函数,有多种调用方法,而json是数据打包的一种格式,并不像字典具备操作性,并且是格式就会有一些形式上的限制,比如json的格式要求必须且只能使用双引号作为key或者值的边界符号,不能使用单引号,而且“key”必须使用边界符(双引号),但字典就无所谓了。
形式上的相近也让python提供了json.loads()转换函数,方便json数据的调用。