Python中让MySQL查询结果返回字典类型的方法,pythonmysql
Python中让MySQL查询结果返回字典类型的方法,pythonmysql
Python的MySQLdb模块是Python连接MySQL的一个模块,默认查询结果返回是tuple类型,只能通过0,1..等索引下标访问数据
默认连接数据库:
复制代码 代码如下:
MySQLdb.connect(
host=host,
user=user,
passwd=passwd,
db=db,
port=port,
charset='utf8'
)
查询数据:
复制代码 代码如下:
cur = conn.cursor()
cur.execute('select b_id from blog limit 1')
data = cur.fetchall()
cur.close()
conn.close()
打印:
复制代码 代码如下:
for row in data:
print type(row)
print row
执行结果:
复制代码 代码如下:
<type 'tuple'>
(1L,)
为tuple类型。
我们可以这么干使得数据查询结果返回字典类型,即 字段=数据
导入模块
复制代码 代码如下:
import MySQLdb.cursors
在连接函数里加上这个参数 cursorclass = MySQLdb.cursors.DictCursor 如:
复制代码 代码如下:
MySQLdb.connect(
host=host,
user=user,
passwd=passwd,
db=db,
port=port,
charset='utf8',
cursorclass = MySQLdb.cursors.DictCursor
)
再重新运行脚本,看看执行结果:
复制代码 代码如下:
<type 'dict'>
{'b_id': 1L}
搞定!
注意,在连接的时候port如果要指定则值必须是整型,否则会出错!
通常我先检查 cam_row是否为空,然后再检查它的长度,如果长度与你预期的长度1不相符也不对。
加一句 if not cam_row:continue就可以了
我就不举例子了。大概说一下思路,参考网上的python的例子,可以查询到需要的数据,是一个列表,假设某个字段用做字典的键值,那么每遇到一个新行,如果键值字段为k,那么
if map.has_key(k):
map[k].append(newrow)
else:
map[k]=[newrow]
不过你说的还是不清楚,而且字典类型的值为何又是字典,直接把查到的行保存起来不就可以了吗?
相关内容
- Python使用MD5加密字符串示例,pythonmd5
- Python实现的石头剪子布代码分享,python石头剪子布
- Python解释执行原理分析,python解释原理
- Python实现远程调用MetaSploit的方法,pythonmetasploit
- Python实现Linux下守护进程的编写方法,python守护进程
- Python中replace方法实例分析,pythonreplace
- 零基础学Python(一)Python环境安装,基础学python环境
- python字符串连接方式汇总,python字符串汇总
- Python 不同对象比较大小示例探讨,python大小示例探讨
- Python中dictionary items()系列函数的用法实例,pythondictio
评论关闭