Tôi vừa hoàn thành một kịch bản Python cơ bản cho một khách hàng mà tôi muốn chia sẻ với bạn. Anh ấy cần một phương tiện dễ dàng để di chuyển dữ liệu qua lại giữa MySQL và Excel, và đôi khi anh ấy cần thực hiện một chút thao tác trong quá trình này. Trước đây tôi có thể chỉ dựa vào VBA để làm việc này, nhưng tôi thấy nó dễ dàng hơn nhiều với Python. Trong bài đăng này và video đi kèm, tôi chỉ hiển thị một phần của dự án - nhập dữ liệu từ Excel vào MySQL qua Python. Bắt đầu nào
Hãy chắc chắn kiểm tra video đi kèm
Tải xuống các phụ thuộc
Giả sử bạn đã cài đặt Python [Tôi đang sử dụng phiên bản 2. 7], tải xuống và cài đặt thư viện xlrd và mô-đun MySQLdb-
Có nhiều cách để nhập tệp CSV vào SQL Server bằng Python. Trong hướng dẫn này, bạn sẽ thấy một kỹ thuật đơn giản để nhập dữ liệu của mình bằng 2 thư viện Python sau
- Pandas – được sử dụng để nhập tệp CSV vào Python và tạo DataFrame
- Pyodbc – dùng để kết nối Python với SQL Server
Các bước để nhập tệp CSV vào SQL Server bằng Python
Bước 1. Chuẩn bị tệp CSV
Để bắt đầu, hãy chuẩn bị tệp CSV mà bạn muốn nhập vào SQL Server
Ví dụ: giả sử rằng một tệp CSV đã được chuẩn bị, trong đó
- Tên tệp CSV là 'sản phẩm'
- Tệp CSV được lưu trữ theo đường dẫn sau. C. \Users\Ron\Desktop\Test\products. csv
Ngoài ra, tệp CSV chứa dữ liệu sau
product_idproduct_nameprice1Laptop12002Printer2003Tablet3504Keyboard805Monitor400Bước 2. Nhập tệp CSV vào DataFrame
Bạn có thể sử dụng thư viện Pandas để nhập tệp CSV vào DataFrame
Đây là mã để nhập tệp CSV cho ví dụ của chúng tôi [lưu ý rằng bạn sẽ cần thay đổi đường dẫn để phản ánh vị trí lưu trữ tệp CSV trên máy tính của bạn]
import pandas as pd data = pd.read_csv [r'C:\Users\Ron\Desktop\Test\products.csv'] df = pd.DataFrame[data] print[df]
Đây là cách DataFrame trông như thế nào trong Python
product_id product_name price
0 1 Laptop 1200
1 2 Printer 200
2 3 Tablet 350
3 4 Keyboard 80
4 5 Monitor 400
Bước 3. Kết nối Python với máy chủ SQL
Để kết nối Python với máy chủ SQL, bạn sẽ cần
- Tên máy chủ. Đối với mục đích trình diễn, giả sử rằng tên máy chủ là. RON\SQLEXPRESS
- Tên cơ sở dữ liệu. Tên cơ sở dữ liệu cho ví dụ của chúng tôi sẽ là. test_database
Đây là mã để kết nối Python với SQL cho ví dụ của chúng tôi
import pyodbc conn = pyodbc.connect['Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;'] cursor = conn.cursor[]
Bạn có thể muốn kiểm tra hướng dẫn sau giải thích các bước đầy đủ để kết nối Python với SQL Server bằng pyodbc
Bước 4. Tạo bảng trong SQL Server bằng Python
Tiếp theo, thêm cú pháp tạo bảng trong SQL Server. Bảng này sẽ được sử dụng để lưu trữ dữ liệu đã nhập từ tệp CSV
Ví dụ của chúng tôi, bạn có thể thêm cú pháp sau để tạo bảng 'sản phẩm'
cursor.execute[''' CREATE TABLE products [ product_id int primary key, product_name nvarchar[50], price int ] ''']
Lưu ý rằng bất cứ khi nào bạn chạy mã để tạo bảng. Bạn chỉ nên sử dụng đoạn mã đó một lần. Nếu không, bạn sẽ gặp lỗi bên dưới.
Lỗi lập trình. ['42S01′, “[42S01] [Microsoft][ODBC SQL Server Driver][SQL Server] Đã có một đối tượng có tên là 'sản phẩm' trong cơ sở dữ liệu. [2714] [SQLExecDirectW]”]
Bước 5. Chèn dữ liệu DataFrame vào bảng
Đây là cú pháp để chèn dữ liệu DataFrame [từ bước 2] vào bảng sản phẩm
for row in df.itertuples[]: cursor.execute[''' INSERT INTO products [product_id, product_name, price] VALUES [?,?,?] ''', row.product_id, row.product_name, row.price ] conn.commit[]
Và đây là toàn bộ mã để nhập tệp CSV vào SQL Server bằng Python
import pandas as pd import pyodbc # Import CSV data = pd.read_csv [r'C:\Users\Ron\Desktop\Test\products.csv'] df = pd.DataFrame[data] # Connect to SQL Server conn = pyodbc.connect['Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;'] cursor = conn.cursor[] # Create Table cursor.execute[''' CREATE TABLE products [ product_id int primary key, product_name nvarchar[50], price int ] '''] # Insert DataFrame to Table for row in df.itertuples[]: cursor.execute[''' INSERT INTO products [product_id, product_name, price] VALUES [?,?,?] ''', row.product_id, row.product_name, row.price ] conn.commit[]
Chạy mã bằng Python [sau khi thực hiện điều chỉnh đường dẫn nơi tệp CSV của bạn được lưu trữ, cũng như thực hiện thay đổi đối với thông tin kết nối cơ sở dữ liệu của bạn]