IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> python环境安装、读取excel数据插入数据库demo -> 正文阅读

[开发工具]python环境安装、读取excel数据插入数据库demo

环境安装

安装包python-3.8.2-amd64.exe

链接:https://pan.baidu.com/s/1GP2gy3HSU2dgq0Sb2y4xJA
提取码:6wnv
–来自百度网盘超级会员V4的分享

image-20211206221230829

image-20211206221248730

image-20211206221305348

编辑器pycharm

链接:https://pan.baidu.com/s/1fCMV8zZVxJ1Bcq259wmy2A
提取码:0fil
–来自百度网盘超级会员V4的分享

激活与idea同理,下载jetbrains-agent_2019.3.1.jar Custom VM…最后一行添加文件路径

-javaagent:G:\PyCharm 2019.3.1\jetbrains-agent_2019.3.1.jar

image-20211206222131867

开发中…

语法错误

声明主函数没有调用或者调用名称要定格不能留有空格pydev debugger: process 16608 is connecting

image-20211206222722008

利用sqlacodegen自动生成ORM实体类

安装sqlacodegen: pip install sqlacodegen

自动生成命令: sqlacodegen mysql://{用户名}:{密码}@{数据库链接地址}:{端口号}/{数据库} > {自定义文件名}.py

报错安装: pip install mysqlclient

读取excel

读取文件

# 路径注意转义  一定要加sheet_name=None,才能读取出所有的sheet,否则默认读取第一个sheet,且获取到的keys是第一行的值
# 如果异常  左上角 File-->Settings--->project -->+号搜索安装openpyxl
df = pd.read_excel(file_name, sheet_name=None)

遍历文件 按sheet

for i in df.keys():
    dataNone = pd.read_excel(file_name,sheet_name=i, usecols=None)
    columns = dataNone.columns

遍历sheet 按行获取数据

# 获取行号的索引,并对其进行遍历:
for di in dataNone.index.values:
    # enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
    for index,column_data in enumerate(dataNone.values[di]):
        #value值  column_data
        #列名
        column=columns[index]
        #转int
        if column in date_columns and column_data:
           column_data = int(column_data)
        #转None值
        if (isinstance(column_data, float) and math.isnan(column_data)) or str(column_data) == 'nan':
            column_data = None
        

插入数据库

log.info("开始写入数据库...")
# sqlacodegen 生成的文件SCbtMapping
insert_type = SCbtMapping.__table__.insert()
table_name = SCbtMapping.__tablename__
session = sessionmaker(engine)()
try:
	# 批量分页删除
    if del_conditions:
        del_len = len(del_conditions)
        del_count = 0
        while del_count < del_len:
            del_condition = del_conditions[del_count:del_count + 500]
            session.execute(f"delete from {table_name} where {' or '.join(del_condition)}")
            del_count += 500
    # 插入数据
    session.execute(
        insert_type,
        result_data
    )
    session.commit()
except Exception as e:
    log.error(e)
    log.error("插入BO数据库失败")
    session.rollback()
    raise e
finally:
    session.close()
    log.info("数据库插入结束")
r(e)
    log.error("插入BO数据库失败")
    session.rollback()
    raise e
finally:
    session.close()
    log.info("数据库插入结束")
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-12-13 13:02:18  更:2021-12-13 13:04:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:42:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码