Python 查询原生sql,model转json
2017-02-09 11:11
435 查看
1 首先我们看一下python 序列化对象===========================================================================================================================
是不是很简单直接转为dict 就ok;
2 那我们在django 数据库查询的时候继承了models===================================================================================================================
输出结果为
3 在往json 转换的时候_state 的时候, model 是无法系列化的,解决方案======================================================================================================
4结果就去掉了_STATE===================================================================================================================================
5 如果是对象列表呢?===================================================================================================================================
很简单吧,最近也是刚开始接触python
6 Python 解决原生sql的问题,并且处理orm,在sql 查询业务需要中,多张业务表 并没有显示的指明表之间的直接的关联关系,也就是说没有外键关联之类的,如果自己去构建vo ,这会浪费很多的时间,python 提供了api 去帮助我们实现这样的事情
==============================================================================================================================================
这里主要用了zip 函数来压缩2个元组,主要用了cur.descriptiop 这个api ,结果为
=================================================================================================================================================
class Test: def __int__(self): self.a=2 self.b=3 a = Test(); a.a=2; a.b=3; a_dist = a.__dict__; print json.dumps(a_dist);
是不是很简单直接转为dict 就ok;
2 那我们在django 数据库查询的时候继承了models===================================================================================================================
userinfo= User.objects.get(id=1); print userinfo.__dict__;
输出结果为
{'address': u'nanjin', '_state': <django.db.models.base.ModelState object at 0x0000000003D59E48>, 'id': 1L, 'name': u'seat'}
3 在往json 转换的时候_state 的时候, model 是无法系列化的,解决方案======================================================================================================
print model_to_dict(userinfo) print json.dumps(model_to_dict(userinfo))
4结果就去掉了_STATE===================================================================================================================================
{'address': u'nanjin', 'id': 1L, 'name': u'seat'} {"address": "nanjin", "id": 1, "name": "seat"}
5 如果是对象列表呢?===================================================================================================================================
users = DemoTest.models.User.objects.all() type(users) usersjson = json.dumps(list(users), default=lambda O: model_to_dict(O))
很简单吧,最近也是刚开始接触python
6 Python 解决原生sql的问题,并且处理orm,在sql 查询业务需要中,多张业务表 并没有显示的指明表之间的直接的关联关系,也就是说没有外键关联之类的,如果自己去构建vo ,这会浪费很多的时间,python 提供了api 去帮助我们实现这样的事情
==============================================================================================================================================
list_=[] conn = MySQLdb.connect(host='127.0.0.1', user='root', passwd='', db='seantest') cur = conn.cursor() cur.execute("select a.*,b.user_teacher from USER a , userdetail b WHERE a.id = b.userid") desc = cur.description print desc if desc == None: return [] columns = [col[0] for col in desc] print columns for row in cur.fetchall(): list_.append(dict(zip(columns,row))) return list_
这里主要用了zip 函数来压缩2个元组,主要用了cur.descriptiop 这个api ,结果为
=================================================================================================================================================
[{'user_teacher': 'zhang', 'address': 'nanjin', 'id': 1L, 'name': 'zhoutao'}, {'user_teacher': 'zhou', 'address': 'hhaha', 'id': 3L, 'name': 'rerere'}]
相关文章推荐
- Python SQL查询并生成json文件操作示例
- 菜鸟学Python(15):打出Django中的sql查询语句
- NHibernate 操作原生SQL以及查询DataTable,DataSet
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1
- 简单修改Hibernate源码,增加使用原生SQL查询时动态addEntity和addScalar功能
- JPA的查询语言—使用原生SQL
- hibernate原生sql查询(2.1.6)
- python 中使用map 构建sql查询语句
- hibernate原生sql查询及hql查询
- Hibernate原生SQL多表查询字段名重复问题
- 解决Hibernate原生SQL映射问题 - SQL查询出来的结果映射为值对象
- Hibernate 原生查询 createSQLQuery 详解
- 简单修改Hibernate源码,增加使用原生SQL查询时动态addEntity和addScalar功能
- Hibernate原生SQL查询多表关联,SQL语句要注意的问题
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-2
- hibernate参考手册之---原生SQL查询
- Hibernate3.2.6 原生sql 查询使用方法,将查询结果直接转换为POJO,不必非要指定属性大写
- Hibernate入门实例——使用原生SQL的查询
- Hibernate中原生sql查询多个表,数据映射
- 在hibernate中,如何把原生sql查询出来的结果映射到实体bean