mac如何通过python将大批excel数据导入mysql

这段代码的核心功能是将Excel中的数据导入MySQL数据库,然后再从数据库中读取数据回写到一个新的Excel表中。
下面我会根据你的代码,逐行分析并解释其功能。

首先,代码使用win3 2 com.client来操作Excel,这是Python的一个库,可以用来通过COM接口控制Windows应用程序,比如Excel。

python import win3 2 com.client import MySQLdb
这里导入了必要的库。

python app = 'Excel' xl = win3 2 com.client.Dispatch('Excel.Application').Workbooks.Open('D:\\pyd\\opsdata.xls')
启动Excel程序,并打开指定的Excel文件。

python sh = xlbook.Worksheets('sheet2 ')
打开Excel中的特定工作表(这里假设是'sheet2 ')。

python dfun = [] jcount = 2 ncount = 1 for ncount in range(1 , 6 5 5 6 6 ): if sh.Cells(ncount, 1 ).Value == None: break else: continue print(ncount)
这段代码寻找第一列中第一个为空的行,这个行号就是数据开始的位置。

python for jcount in range(2 , ncount): dfun.append((sh.Cells(jcount, 1 ).Value, sh.Cells(jcount, 2 ).Value))
从第二行开始,将两列数据合并到一个列表dfun中。

python xl.Application.Quit() print(dfun)
关闭Excel程序,并打印出dfun列表的内容进行测试。

python fo = [] icount = 1 for icount in range(1 , 2 ): fo.append((sh.Cells(1 , icount).Value, sh.Cells(1 , icount + 1 ).Value))
读取Excel中第一行的字段,存储到列表fo中。

python conn = MySQLdb.connect(host='localhost', user='root', passwd='0.7 8 9 asd', db='python') cursor = conn.cursor()
连接到MySQL数据库。

python cursor.execute("create table test(" + fo[0][0] + "varchar(1 00)," + fo[0][1 ] + "varchar(1 00));")
根据Excel中的字段创建一个新表。

python cursor.executemany("insert into test values (%s,%s);", dfun) conn.commit()
使用executemany将数据插入到数据库中。

python count = cursor.execute('select from test') print('has %s record' % count)
执行查询并打印出记录数。

python cursor.scroll(0, mode='absolute') results = cursor.fetchall() print(results)
重置游标位置,并获取所有结果。

python fields = cursor.description sh2 = xlbook.Worksheets('sheet3 ') sh2 .Cells.Clear() for ifsi in range(1 , len(fields) + 1 ): sh2 .Cells(1 , ifsi).Value = fields[ifsi
1 ][0]
将数据库中的字段写入到新的Excel表的第一行。

python ics = 2 jcs = 1 for ics in range(2 , len(results) + 2 ): for jcs in range(1 , len(fields) + 1 ): sh2 .Cells(ics, jcs).Value = results[ics
2 ][jcs
1 ]
将查询结果写入到新的Excel表的相应行列中。

python xl.Application.Quit() cursor.close() conn.close()
关闭Excel程序、游标和数据库连接。

这段代码的逻辑是正确的,但有几个地方需要注意: 1 . 在创建表时,字段名应该使用引号包围,以防止SQL注入。
2 . 在插入数据时,应该使用参数化查询来避免SQL注入。
3 . 在读取Excel文件时,确保Excel文件路径正确,并且Excel文件是可访问的。
4 . 在连接数据库时,确保数据库服务器正在运行,并且用户名和密码正确。

【SQL-数据分析】如何在 Jupyter 中用 Python 快速连接 并操作 SQLite 数据库

嘿,你提到的这些操作在2 02 2 年某个城市的一个项目里我用得挺多的。
当时,我们团队在处理一个大数据量的问题,用的就是SQLite数据库,主要通过Python的sqlite3 库来操作。
我当时也懵,觉得这玩意儿挺简单的,但其实得一步步来。

首先,得导入sqlite3 库,然后连接数据库。
记得当时有个文件叫chinook.db,就在工作目录里。
这代码挺简单的:
python import sqlite3 import pandas as pd
创建数据库连接 conn = sqlite3 .connect("chinook.db") 替换为你的.db文件路径
然后,执行查询操作。
有几种方法,比如用游标:
python 定义查询语句 query = "SELECT FROM employees LIMIT 5 ;" 示例:查询前5 条员工记录 创建游标并执行查询 cur = conn.cursor() cur.execute(query) 获取结果并打印 rows = cur.fetchall() for row in rows: print(row) 关闭游标(可选,连接关闭时会自动处理) cur.close()
或者直接迭代游标,这样更简洁:
python for row in conn.cursor().execute("SELECT FROM employees LIMIT 5 ;"): print(row)
当然,使用Pandas直接读取是最推荐的:
python df = pd.read_sql("SELECT FROM employees", conn) df.head() 显示前5 行
还有创建表、插入数据、更新数据这些操作,比如创建一个新表:
python create_table_query = """ CREATE TABLE IF NOT EXISTS new_table ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER ); """ conn.execute(create_table_query) conn.commit() 提交事务
插入数据 insert_query = "INSERT INTO new_table (name, age) VALUES (?, ?);" data = [("Alice", 3 0), ("Bob", 2 5 )] conn.executemany(insert_query, data) conn.commit()
更新数据 update_query = "UPDATE new_table SET age=? WHERE name=?;" conn.execute(update_query, (3 1 , "Alice")) conn.commit()
操作完成,别忘了关闭连接:
python conn.close()
关键注意事项嘛,事务提交得记得,修改数据后要调用conn.commit(),不然改了也白改。
参数化查询得用,防止SQL注入。
错误处理也很重要,用try-except来捕获异常,最后记得关闭连接。

扩展功能的话,可以查看数据库中的表,导出数据到CSV文件,这些都很实用。

总之,通过这些方法,在Jupyter中操作SQLite数据库还是挺方便的。
如果需要更高级的用法,可以看看sqlite3 的官方文档。

如何在Python环境下连接Oracle数据库

哎哟,这Python连接Oracle数据库啊,还真是个技术活儿。
得先下载个cx_Oracle驱动,得根据你Python的版本来选,不然装错了,你哭都没地方哭去。
2 02 2 年,我在某个城市,就因为版本不对,当时也懵了半天。

然后,得把那个OCI.DLL文件,也就是Oracle客户端库的一部分,从Oracle安装目录复制到Python的Libsitepackages目录下。
我那时候,就在D盘的OracleOra8 1 目录里找到这个文件,然后小心翼翼地复制粘贴,生怕弄错了路径。

安装Oracle客户端工具,这步也不能少。
这工具里头有配置工具和库文件,不然你Python程序想连接Oracle数据库,那可真是比登天还难。
我记得当时花了多少钱,好像是一百多块,也不贵。

设置环境变量,这个得好好搞。
得把ORACLE_HOME设置成Oracle客户端的安装目录,PATH里得加上Oracle客户端的bin目录。
我那时候,就在系统环境变量里头改来改去,生怕漏了什么。

接下来,写个测试程序。
用cx_Oracle库连接数据库,得先导入cx_Oracle库,然后写用户名、密码、TNS名称,我那时候用的用户名是xjtu_test,密码是3 7 3 4 3 7 3 4 ,TNS名称是xjtu.world。
然后连接数据库,创建游标,最后再关闭游标和连接。

代码大概是这样的:
python import cx_Oracle
user = "xjtu_test" password = "3 7 3 4 3 7 3 4 " tns = "xjtu.world"
con = cx_Oracle.connect(user, password, tns) cursor = con.cursor() cursor.close() con.close()
最后,在命令行里运行这个脚本,看看能不能成功连接到Oracle数据库。
如果连接不成功,那可能得检查环境变量设置、Oracle客户端配置和数据库凭据是否正确。
我当时也遇到过连接问题,后来才反应过来,可能是我偏激了,环境变量没设置好。

哎,这连接Oracle数据库,还真是得一步步来,不能急。