当前位置: 首页 > news >正文

python使用read_sql与to_sql读写数据库

文章目录

  • 详细说明
  • 示例程序

详细说明

使用pandas读写数据库的方法(以Mysql为例)如下:

  • 首先是打包一个工具函数:

    import pandas as pd
    import numpy as np
    from sqlalchemy import create_engine, textdef get_sql_engine():# 数据库mysql_config = {"db": "test_db","host": "127.0.0.1","user": "test_user","password": "test_pass","port": 3306,}engine = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format(mysql_config['user'], mysql_config['password'], mysql_config['host'],mysql_config['port'], mysql_config['db']))return engine
    
  • 读取数据库.read_sql()的方法:

    engine = get_sql_engine()# ======== 写入 ===========
    data_df = pd.DataFrame(np.random.random(size=(100, 5)))
    data_df.to_sql('test_data_df', con=engine, if_exists='replace', index=False)
    
  • 读取数据库read_sql()的方法:

     data_df = pd.read_sql_query(text('select * from test_data_df'), con=engine.connect())
    

    在读取的时候容易报错,有几个要点:
    1. 首先导入from sqlalchemy import text,然后以text(sql语句)的形式传入第一个参数
    2. 在第二个参数需要使用engine.connect()

示例程序

import pandas as pd
import numpy as np
from sqlalchemy import create_engine, textdef get_sql_engine():# 数据库mysql_config = {"db": "test_db","host": "127.0.0.1","user": "test_user","password": "test_pass","port": 3306,}engine = create_engine("mysql+pymysql://{}:{}@{}:{}/{}".format(mysql_config['user'], mysql_config['password'], mysql_config['host'],mysql_config['port'], mysql_config['db']))return enginedef main():engine = get_sql_engine()# ======== 写入 ===========data_df = pd.DataFrame(np.random.random(size=(100, 5)))data_df.to_sql('test_data_df', con=engine, if_exists='replace', index=False)# ======== 读取 ===========data_df = pd.read_sql_query(text('select * from test_data_df'), con=engine.connect())if __name__ == '__main__':main()
http://www.lryc.cn/news/290067.html

相关文章:

  • 【ArcGIS微课1000例】0096:dem三维块状表达(层次地形模型)
  • OJ_糖果分享游戏
  • sqli-lbs靶场搭建
  • SharedPreferences卡顿分析
  • 64、ubuntu使用c++/python调用alliedvisio工业相机
  • 网络端口与 IP 地址有什么区别?
  • C语言标准的输入输出
  • C++ 类与对象(上)
  • 如何配置MacLinuxWindows环境变量
  • 【Linux】从C语言文件操作 到Linux文件IO | 文件系统调用
  • mask transformer相关论文阅读
  • springboot+vue3支付宝接口案例-第二节-准备后端数据接口
  • 贪吃蛇游戏设计文档(基于C语言)
  • 在Windows上安装与配置Apache服务并结合内网穿透工具实现公网远程访问本地内网服务
  • 幻兽帕鲁服务器出租,腾讯云PK阿里云怎么收费?
  • day05休息,day06 有效的字母异位词、两个数组的交集、快乐数、两数之和
  • star原则
  • 蓝桥杯---九数组分数
  • 将 Amazon Bedrock 与 Elasticsearch 和 Langchain 结合使用
  • ###C语言程序设计-----C语言学习(6)#
  • Hadoop3.x源码解析
  • 基于vue实现待办清单案例
  • 应急响应-流量分析
  • 计算机网络·网络层
  • 2024/1/28周报
  • Vue3中的ref和shallowRef、reactive和shallowReactive
  • go包与依赖管理
  • C++文件操作基础 读写文本、二进制文件 输入输出流 文件位置指针以及随机存取 文件缓冲区以及流状态
  • nginx部署前端(vue)项目及配置修改
  • FreeRTOS