python-51-MySQLdb查询返回dict格式

前言

本篇有两个库可以将数据库查询时返回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'

原文地址:https://www.cnblogs.com/gsxl/p/13950531.html