• Pandas连接MySQL数据库


    pandas是一个强大的Python工具包,能够快速帮助我们做很多数据处理。但是在利用pandas连接数据库时,也会遇到很多问题,在此我总结了一个相对较为简单的连接范式,供大家参考学习。

    先上代码:

    1. import pandas as pd
    2. # 数据库参数
    3. MYSQL_USER = 'root'
    4. MYSQL_PASS = '****' # 你的密码
    5. MYSQL_HOST = "localhost" # 你的host
    6. MYSQL_PORT = 3306
    7. MYSQL_CHARSET = 'utf8mb4' # 数据库编码格式
    8. # 数据库名称
    9. MYSQL_DATABASE = "system"
    10. import pymysql
    11. from sqlalchemy import create_engine
    12. # url
    13. MYSQL_DATABASE_URL = fr"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASS}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}?charset={MYSQL_CHARSET}"
    14. # 创建引擎
    15. engine = create_engine(MYSQL_DATABASE_URL)
    16. # 数据库调用函数
    17. def access_db(sql, data=None, is_many=False):
    18. '''
    19. :param sql: sql执行语句
    20. :param data: 数据,如果没有数据则执行sql代码
    21. :param is_many: 是否为多条数据
    22. :return: 查询数据
    23. '''
    24. conn = pymysql.connect(host=MYSQL_HOST, port=MYSQL_PORT, user=MYSQL_USER,
    25. password=MYSQL_PASS, db=MYSQL_DATABASE, charset=MYSQL_CHARSET)
    26. cur = conn.cursor()
    27. if is_many:
    28. try:
    29. cur.executemany(sql, data)
    30. conn.commit()
    31. except Exception as e:
    32. print(e)
    33. conn.rollback()
    34. elif data:
    35. try:
    36. cur.execute(sql, data)
    37. conn.commit()
    38. except Exception as e:
    39. print(e)
    40. conn.rollback()
    41. else:
    42. cur.execute(sql)
    43. exe_data = cur.fetchall()
    44. conn.commit()
    45. return exe_data
    46. cur.close()
    47. conn.close()
    48. # 查询数据
    49. sql = "select * from user"
    50. df_user = pd.read_sql(sql=sql, con=engine)
    51. print(df_user)

    上述代码中用到的函数,在查询语句,插入语句(一次可插入一条或多条)等方面都可以直接调用,但需要确保sql语句的正确性,注意更改数据库参数为你自己需要连接的数据库,sql建议在代码调用前最好直接在数据库进行过查询并能够获取到正确的数据再放入代码层,避免因为一些基本语法问题导致问题定位浪费时间和精力。

  • 相关阅读:
    emqx broker安装
    1.5 新一代信息技术
    nginx [emerg] “stream“ directive is not allowed here in
    数据结构——二叉树的公共祖先问题
    面试时候常说的复杂度到底是什么?
    nginx实现负载均衡load balance
    深入浅出线程池
    腾讯云拼了99元服务器老用户能买,续费不涨价!
    手机键盘(暑假每日一题 22)
    Windows快捷键
  • 原文地址:https://blog.csdn.net/L_Jane_H/article/details/137892494