• python数据库操作


    一、使用的库

    1.连接数据库pysql
    2.读取数据库pandas
    3.将读取的元组数据类型转换为列表numpy

    二、连接数据库

    import pymysql.cursors
    db = pymysql.connect(
            host='**',
            port=**,
            user='**',
            password='**',
            db='**',
    
            charset='utf8'
            )
    # 创建一个游标
    cursor = db.cursor()
    #执行sql
    cursor.execute(sql)
    

    三、读取数据库返回结果

    1. 读取一行或多行数据

    • fetchone()获取结果集的下一行
    • fetchall()获取结果集中的剩下的所有行——<class 'tuple'>

    2.读取一列数据

    • python读取sql里面的指定数据列(一列数据),并将其转换成列表使用
      • 用pandas来读取数据库里面的内容——<class 'pandas.core.frame.DataFrame'>
      • 再使用numpy库将DataFrame数据转换成数组——<class 'numpy.ndarray'>
      • 再将数组类型数据转换成列表——<class 'list'>
    # 读取数据
    import pandas as pd
    import numpy as np
    
    result = cursor.fetchall()
    print(result,type(result))
    result1 = pd.DataFrame(list(result), columns=["sku_count", "sku_pay_amount", "unit_price"])
    print(result1,type(result1))
    # 先使用array()将DataFrame转换一下
    result2 = np.array(result1)
    print(result2,type(result2))
    # 再将转换后的数据用tolist()转成列表
    result3 = result2.tolist()
    print(result3,type(result3))
    for i in range(0, len(result3)):
        value_column = result3[i][0]
        print(value_column)
    

    四、处理结果集

    1.遍历元组集获取所有单个元组

    students=cur.fetchall()
    for student in students:
        print(student)
    

    2.遍历元组里的所有元素输出

    students=cur.fetchall()
    for student in students:
        sno=student[0]
        sname=student[1]
        sage=student[2]
        score=student[3]
        print('sno':sno,'sname':sname,'age':sage,'score':score)
    

    3.获取一条数据——使用下标和fetchone方法

    student=cur.fetchone()
    print(student)
    sno=student[0]
    sname=student[1]
    sage=student[2]
    score=student[3]
    print('sno':sno,'sname':sname,'age':sage,'score':score)
    
  • 相关阅读:
    ubuntu下常用的apt-get 命令参数
    探索equals()和hashCode()方法
    Java多线程编程核心技术
    线程的状态
    详解Java中的clone方法
    为什么String类是不可变的?
    深入理解final和static关键字
    彻底理解ThreadLocal
    反射消除String类对象的不可变特性
    进程和线程
  • 原文地址:https://www.cnblogs.com/jasmine0112/p/13597682.html
Copyright © 2020-2023  润新知