前言
本篇有两个库可以将数据库查询时返回dict格式。①pymsql ②MySQLdb
你更喜欢用哪种呢?
一、pymsql
import pymysql from pymysql.cursors import DictCursor conn = pymysql.connect( host='127.0.0.1', port=3306, database='demo', user='root', password='123456', # autocommit=True ) cursor = conn.cursor(DictCursor) sql = 'select * from address where id=1' cursor.execute(sql) result = cursor.fetchone() print(result)
二、MySQLdb
但是MySQLdb可以返回dict格式。看例子吧:
import MySQLdb def send_sql(sql): # 建立连接 conn = MySQLdb.connect( host='127.0.0.1', user='root', passwd='123456', db='demo', charset='utf8') # 建立游标时,加上"MySQLdb.cursors.DictCursor",让数据查询结果返回字典类型 cur = conn.cursor(MySQLdb.cursors.DictCursor) # 对数据进行操作 cur.execute(sql) # 执行sql语句 data = cur.fetchone() # 读取数据 # 关闭数据库连接 cur.close() conn.close() return data if __name__ == '__main__': sql = "select * from demo.JT_data as j where j.id=1;" # 定义查询操作的sql语句 result = send_sql(sql) print(result) print(result.get('id'))
返回数据:
{'id': '1', 'province_id': '110000', 'province': '北京', 'city_id': '110100', 'city': '北京市', 'county_id': '110101', 'county': '东城区'} 1
也是这两个方法:
cur.fetchone() # 读取一条数据 cur.fetchall() # 读取查询出的所有数据
注意:如果出现乱码,则需要将它加入连接参数中:charset='utf8'