ChatGPT-看一看你还有多久失业

  • 需求:将下列表格中的数据导入mysql数据库并且可以将mysql数据库上的数据导出到excel,如果让你做需要多久时间

image.png

第1次询问ChatGPT:一个excel内部有多个sheet,每个sheet的表头都是章节号、测试项、测试子项、用例名称、用例表示、测试说明、预置条件、输入及操作说明、期望测试结果、实际测试结果、执行结果、测试人员、执行日期、问题单标识。要求1、根据上述内容创建数据根据mysql创建创建数据表,同时增加首列作为id;要求2、使用python将上述excel中多个sheet录入mysql数据库;要求3、可以从mysql数据库导出到excel
好的,我会逐步为您解答如何实现这些要求。

以下是ChatGP第1次回复

  1. 根据上述内容创建数据根据mysql创建创建数据表,同时增加首列作为id。

首先,我们需要根据Excel表格中的字段信息,在MySQL数据库中创建对应的数据表。可以使用MySQL命令行或者可视化工具如phpMyAdmin等创建表格,具体操作如下:

CREATE TABLE test_cases (
    id INT NOT NULL AUTO_INCREMENT,
    chapter_number VARCHAR(255),
    test_item VARCHAR(255),
    test_subitem VARCHAR(255),
    case_name VARCHAR(255),
    case_representation VARCHAR(255),
    test_description VARCHAR(255),
    precondition VARCHAR(255),
    input_operation VARCHAR(255),
    expected_result VARCHAR(255),
    actual_result VARCHAR(255),
    execution_result VARCHAR(255),
    tester VARCHAR(255),
    execution_date VARCHAR(255),
    issue_id VARCHAR(255),
    PRIMARY KEY (id)
);

这个表格中包含了所有Excel表格中的字段,同时增加了一个自增的id字段作为主键。

  1. 使用python将上述excel中多个sheet录入mysql数据库。

可以使用Python的pandas库读取Excel文件,然后将每个sheet的数据逐行插入到MySQL数据库中。具体代码如下:

import pandas as pd
import pymysql

# 连接MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test_db')

# 读取Excel文件
excel_file = pd.ExcelFile('test_cases.xlsx')

# 遍历每个sheet,将数据插入到MySQL数据库中
for sheet_name in excel_file.sheet_names:
    sheet_data = excel_file.parse(sheet_name)
    for row_index, row in sheet_data.iterrows():
        # 将数据插入到MySQL数据库中
        cursor = conn.cursor()
        cursor.execute("""
            INSERT INTO test_cases (chapter_number, test_item, test_subitem, case_name, case_representation,
                                   test_description, precondition, input_operation, expected_result, actual_result,
                                   execution_result, tester, execution_date, issue_id)
            VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
        """, tuple(row))
        conn.commit()

# 关闭MySQL数据库连接
conn.close()

这个代码会读取名为test_cases.xlsx的Excel文件中的所有sheet,然后将每行数据插入到MySQL数据库中。

  1. 可以从mysql数据库导出到excel。

要将MySQL数据库中的数据导出到Excel文件中,可以使用Python的pandas库。具体代码如下:

import pandas as pd
import pymysql

# 连接MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test_db')

# 从MySQL数据库中读取数据
query = "SELECT * FROM test_cases"
df = pd.read_sql_query(query, conn)

# 将数据保存到Excel文件中
df.to_excel('test_cases_export.xlsx', index=False)

# 关闭MySQL数据库连接
conn.close()
这个代码会从MySQL数据库中读取test_cases表格的所有数据

由于测试的表格出现了空值的情况导致向数据库添加数据时出现,经过修改,下面是第2次问答,将会自动修改导入数据时的脚本,并解决前面的问题

第2次询问ChatGPT:有一个excel内部有多个sheet,每个sheet的表头都是章节号、测试项、测试子项、用例名称、用例表示、测试说明、预置条件、输入及操作说明、期望测试结果、实际测试结果、执行结果、测试人员、执行日期、问题标识。
要求1、excel中可能出现空值以及MySQL不支持NaN(Not a Number)这个特殊的浮点数值,要在代码中避免出现此类问题,此外需进行参数校验、异常处理等必要措施
要求2、根据上述内容创建数据根据mysql创建创建数据表,同时增加首列作为id,excel中所有的sheet存在一个数据表中;
要求3、将上述excel中多个sheet录入mysql数据库;
要求4、可以从mysql数据库导出到excel;
要求5、用python实现上述代码,

以下是ChatGP第2次回复

import pandas as pd
import pymysql

# 连接MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='test_db')

# 读取Excel文件
excel_file = pd.ExcelFile('./file/CESHIYONGLIZHIXINGJI.xlsx')

# 遍历每个sheet,将数据插入到MySQL数据库中
for sheet_name in excel_file.sheet_names:
    sheet_data = excel_file.parse(sheet_name)
    for row_index, row in sheet_data.iterrows():
        # 检查每个值是否为NaN,将NaN值替换为None
        row = [None if pd.isna(value) else value for value in row]
        # 将数据插入到MySQL数据库中
        cursor = conn.cursor()
        cursor.execute("""
            INSERT INTO test_cases (chapter_no, test_item, test_subitem, case_name, case_representation,
                                   test_description, preconditions, input_operation, expected_result, actual_result,
                                   execution_result, tester, execution_date, issue_id)
            VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
        """, tuple(row))
        conn.commit()
    print(f'sheet_name:{sheet_name} pass')


# 关闭MySQL数据库连接
conn.close()
print('all pass')

数据库导入数据截图

image.png

从数据库导出数据截图

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值