python把Excel写入pg

news/2024/7/9 22:42:27 标签: python, excel, 开发语言, postgresql

1.Excel列和数据库表字段相同

def radical_to_db():

    data1 = pd.read_excel("C:/work/20220714***/**/词**导入pg.xlsx")

    # drop first line
    data1 = data1.drop([0])

    # set upd_date
    # get current time
    now_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    data1["upd_date"] = now_time

    # trim
    data1["chinese_attr"] = data1["chinese_attr"].str.strip()
    data1["radical_full"] = data1["radical_full"].str.strip()
    data1["radical_abbr"] = data1["radical_abbr"].str.strip()
    data1["vers_no"] = data1["vers_no"].str.strip()
    data1["oper_indv"] = data1["oper_indv"].str.strip()

    # set operator
    data1["oper_indv"] = "admin"

    # dataframe类型转换为IO缓冲区中的str类型
    output = StringIO()
    # sep : set split column
    data1.to_csv(output, sep='\t', index=False, header=False)
    output1 = output.getvalue()

    conn = psycopg2.connect(host="10.0.0.10", user = "postgres", password = "123456", database ="postgres" )
    
    cur = conn.cursor()
    cur.copy_from(StringIO(output1), "tableName")
    conn.commit()
    cur.close()
    conn.close()
    print('done')

问题:

1.删除第一行标题

# drop first line
df= df.drop([0])

2.KeyError: 'chinese_attr'

检查原Excel的表头是否包含,报错的列名

可以用 print(df.head()) 查看原表头

3.psycopg2.DataError: extra data after last expected column

原因:Excel文本中有空格,导致 to_csv 分列时候,分出了多余的列。

# sep 修改分隔符为其他生僻的字段中不可能出现的分隔符
data1.to_csv(output, sep='\t', index=False, header=False)

解决办法:

把文本列trim一下

# trim
data1["chinese_attr"] = data1["chinese_attr"].str.strip()
data1["radical_full"] = data1["radical_full"].str.strip()
data1["radical_abbr"] = data1["radical_abbr"].str.strip()
data1["vers_no"] = data1["vers_no"].str.strip()
data1["oper_indv"] = data1["oper_indv"].str.strip()

http://www.niftyadmin.cn/n/402259.html

相关文章

深度学习技巧应用18-OFD格式文件与人工智能结合的技巧应用,实现OFD转文本、OFD自动分类与内容提取

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用18-OFD格式文件与人工智能结合的技巧应用,实现OFD转文本、OFD自动分类与内容提取。OFD格式文件被称为“中国版PDF”。它与PDF格式类似,是一种可读、可打印、可编辑、可存档的电子文档格式,但OFD格式相对于PDF格式更加…

从裸机启动开始运行一个C++程序(四)

先序文章请看 从裸机启动开始运行一个C程序(三) 从裸机启动开始运行一个C程序(二) 从裸机启动开始运行一个C程序(一) 跳转 前面我们介绍过,8086CPU总是在执行CS:IP所对应的内存位置的指令&…

Java教程【01.03】package和import 访问控制

Java包和导入访问控制 在Java中,包(package)和导入(import)是组织和管理代码的重要工具。包用于将相关类和接口组织在一起,而导入用于引入其他包中的类和接口。本教程将介绍Java中包和导入的使用方法。 步骤1:创建包 包是一种将相关类和接口组织在一起的机制。我们可…

【TA100】图形 2.2 模型与材质基础

一、 渲染管线与模型基础 1.可编程渲染管线 ● 蓝色背景的:可编程管线 ● 顶点着色器:模型的顶点进行计算 ● 片元着色器:将光栅化阶段插值的信息进行计算 2.uv ● 纹理映射:任何3D物体的表面都是2D的→纹理就是一张图→纹理…

python接口自动化(三)--如何设计接口测试用例(详解)

在开始接口测试之前,我们来想一下,如何进行接口测试的准备工作。或者说,接口测试的流程是什么?有些人就很好奇,接口测试要流程干嘛?不就是拿着接口文档直接利用接口 测试工具测试嘛。其实,如果…

zabbix配置监控日志

目录 一、zabbix日志监控的功能 二、zabbix监控日志的条件 三、日志监控的监控指标 四、日志监控Item的配置案例 一、zabbix日志监控的功能 Zabbix-agent支持对日志文件的监控,可以对日志对的关键字进行监控,然后告警。日志监控支持普通的日志文件&am…

Appium + mitmProxy 实现APP接口稳定性测试

随着 App 用户量的不断增长,任何小的问题都可能放大成严重的线上事故,为了避免对App造成损害的任何可能性,我们必须从各个方面去思考 App 的稳定性建设,尽可能减少任何潜在的威胁。 1.背景介绍 为了保障 App 的稳定性&#xff0c…

浅析国有企业信息化建设的难点及解决对策

01 国有企业信息化部门主要做什么? 国有企业信息化部门负责在企业范围内推进信息化工作。他们的职责包括但不限于:制定信息化战略和规划、实施信息化项目、管理信息系统和网络、维护和升级软硬件、开发新的数字化产品和服务、提高信息安全和数据隐私等。…