Cách lưu dữ liệu excel trong cơ sở dữ liệu bằng python?

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_nameprice1Laptop12002Printer2003Tablet3504Keyboard805Monitor400

Bướ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)

Làm cách nào để lưu trữ dữ liệu Excel vào cơ sở dữ liệu bằng Python?

Kết hợp tất cả lại với nhau .
Tải một số dữ liệu mẫu từ thư viện Python
Ghi dữ liệu ra CSV
Tải dữ liệu trở lại ứng dụng của chúng tôi thông qua CSV trong từng đoạn khung dữ liệu và đưa vào DB
Sau đó thực hiện một câu lệnh CHỌN trên cơ sở dữ liệu

Làm cách nào để nhập dữ liệu từ Excel sang SQL Server bằng Python?

quote_plus( 'Data Source Name=MssqlDataSource;' 'Driver={SQL Server};' 'Server=POWERSERVER\POWERSERVER;' 'Database=ExcelData;' 'Trusted_connection=yes;' ) hãy thử. coxn = create_engine('mssql+pyodbc. ///?odbc_connect={}'. định dạng (conn)) in ("Đạt") ngoại trừ. in("thất bại. ")

Làm cách nào để nhập dữ liệu vào cơ sở dữ liệu bằng Python?

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ước 2. Nhập tệp CSV vào DataFrame. .
Bước 3. Kết nối Python với máy chủ SQL. .
Bước 4. Tạo bảng trong SQL Server bằng Python. .
Bước 5. Chèn dữ liệu DataFrame vào bảng. .
Bước 6. Thực hiện một bài kiểm tra