python把Excel写入pg

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()

4.指定Excel列的数据类型

eg:指定第4列 第3列..为 字符串类型

data1 = pd.read_excel("C:/work/20230224/resume/report_data_basic.xlsx",dtype={4:"str", 3:"str", 5:"str", 7:"str", 9:"str"})

要将参数写入Excel,可以使用Python中的pandas库和openpyxl库。首先,使用pandas的DataFrame将参数数据存储为表格形式。然后,使用openpyxl库将DataFrame写入Excel文件。 下面是一个示例代码,演示了如何将参数写入Excel: ```python import pandas as pd # 创建参数数据 data = { '参数名称': \['参数1', '参数2', '参数3'\], '数据类型': \['类型1', '类型2', '类型3'\], '默认值': \['值1', '值2', '值3'\], '取值范围': \['范围1', '范围2', '范围3'\], '参数单位': \['单位1', '单位2', '单位3'\], '参数含义': \['含义1', '含义2', '含义3'\] } # 创建DataFrame df = pd.DataFrame(data) # 将DataFrame写入Excel df.to_excel('参数.xlsx', index=False) ``` 在这个示例中,我们首先创建了一个包含参数数据的字典。然后,使用pandas的DataFrame将字典转换为表格形式的数据。最后,使用DataFrame的to_excel方法将数据写入名为"参数.xlsx"的Excel文件中。 请注意,你可以根据实际情况修改参数数据和Excel文件的名称。 #### 引用[.reference_title] - *1* *3* [python pandas read_excel 参数详解 to_excel 读写Excel](https://blog.csdn.net/acoolgiser/article/details/111944821)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Python将word表格存入excel —— 格式化pg参数手册](https://blog.csdn.net/Hehuyi_In/article/details/125690019)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值