Tôi đang sử dụng tập lệnh bên dưới để tìm nạp và chuyển đổi tệp blob được lưu trữ trong cơ sở dữ liệu db2 của IBM bằng sổ ghi chép jupyter. Tệp blob được lưu trữ trong cơ sở dữ liệu ở định dạng excel. Tôi đang cố gắng từ vài ngày trước và tôi có thể tìm nạp và chuyển đổi tệp trong excel sang đĩa cứng của mình nhưng khi tôi mở tệp excel đó, dữ liệu tôi nhận được ở định dạng nhị phân. Tôi muốn excel như khi được lưu trữ. bất cứ ai có thể giúp tôi trong này
import ibm_db
import ibm_db_dbi
connection = ibm_db.connect["DATABASE; HOSTNAME; PORT; PROTOCOL; UID; PWD;","",""]
conn = ibm_db_dbi.Connection[connection]
cur = conn.cursor[]
def write_file[data, filename]:
with open[filename, 'wb'] as file:
file.write[data]
def readBLOB[ID,DATA]: # data column is in blob data type
query = "SELECT DATA FROM FILEDATA WHERE ID= '12345'"
cur.execute[query,[ID,]]
record = cur.fetchone[][0]
write_file[file, 'User'+'.xls']
readBLOB[1,"D:\\New folder\\User.xls"]
Giả sử bạn muốn xuất bảng sau [được gọi là 'dbo. product‘ table] từ SQL Server sang CSV bằng Python
product_idproduct_nameprice1Máy tính8002TV12003Máy in1504Bàn4005Ghế1206Máy tính bảng300Dưới đây là các bước mà bạn có thể làm theo
Các bước để xuất Bảng máy chủ SQL sang CSV bằng Python
Bước 1. Cài đặt gói Pyodbc
Nếu bạn chưa làm như vậy, hãy cài đặt gói pyodbc bằng lệnh bên dưới [trong Windows]
pip install pyodbc
Bạn có thể kiểm tra hướng dẫn sau để biết hướng dẫn cài đặt gói trong Python bằng cách sử dụng pip
Bước 2. Kết nối Python với máy chủ SQL
Có một số mục mà bạn có thể truy xuất trước khi kết nối Python với SQL Server, bao gồm
- Tên máy chủ
- Tên cơ sở dữ liệu
Ví dụ: giả sử rằng chúng tôi được cung cấp thông tin bên dưới
- Tên máy chủ là. RON\SQLEXPRESS
- Tên cơ sở dữ liệu là. test_database
Do đó, mã để kết nối Python với SQL Server sẽ như sau [lưu ý rằng bạn sẽ cần điều chỉnh mã để phản ánh thông tin cơ sở dữ liệu và máy chủ của mình]
import pyodbc conn = pyodbc.connect['Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;']
Bạn có thể xem lại hướng dẫn sau để biết các bước hoàn chỉnh để kết nối Python với SQL Server
Bước 3. Xuất bảng máy chủ SQL sang CSV bằng Python
Đối với bước cuối cùng, bạn có thể sử dụng gói Pandas để xuất bảng từ SQL Server sang CSV
Có thể bạn sẽ cần
- Để cài đặt gói Pandas nếu bạn chưa cài đặt. Bạn có thể cài đặt gói Pandas bằng lệnh này. pip cài đặt gấu trúc
- Truy vấn để lấy kết quả được xuất. Ví dụ của chúng tôi, truy vấn là. chọn * từ test_database. dbo. sản phẩm
- Đường dẫn nơi tệp CSV sẽ được lưu. Ví dụ của chúng tôi, đường dẫn là. C. \Users\Ron\Desktop\exported_data. csv
Khi bạn đã truy xuất thông tin trên, bạn sẽ cần thêm cú pháp sau vào mã
import pandas as pd sql_query = pd.read_sql_query[''' select * from test_database.dbo.product ''' ,conn] # here, the 'conn' is the variable that contains your database connection information from step 2 df = pd.DataFrame[sql_query] df.to_csv [r'C:\Users\Ron\Desktop\exported_data.csv', index = False] # place 'r' before the path name
Đặt tất cả các thành phần lại với nhau
import pandas as pd import pyodbc conn = pyodbc.connect['Driver={SQL Server};' 'Server=RON\SQLEXPRESS;' 'Database=test_database;' 'Trusted_Connection=yes;'] sql_query = pd.read_sql_query[''' select * from test_database.dbo.product ''' ,conn] # here, the 'conn' is the variable that contains your database connection information from step 2 df = pd.DataFrame[sql_query] df.to_csv [r'C:\Users\Ron\Desktop\exported_data.csv', index = False] # place 'r' before the path name
Chạy mã bằng Python [được điều chỉnh theo đường dẫn và thông tin kết nối cơ sở dữ liệu của bạn] và tệp CSV của bạn sẽ được xuất sang vị trí đã chỉ định
Khi bạn mở tệp, bạn sẽ thấy dữ liệu này
product_idproduct_nameprice1Máy tính8002TV12003Máy in1504Bàn4005Ghế1206Máy tính bảng300Bạn cũng có thể muốn xem hướng dẫn sau để biết các bước nhập tệp CSV vào SQL Server bằng Python
Trong blog này, chúng ta sẽ tìm hiểu cách chuyển đổi các bảng cơ sở dữ liệu thành sổ làm việc XLSX với nhiều trang tính bằng python
Cơ sở dữ liệu mà chúng tôi sẽ sử dụng là MongoDB và chúng tôi sẽ sử dụng đám mây MongoDB cho cùng
Đối với IDE, chúng tôi sẽ sử dụng pycharm
Hãy bắt đầu mã hóa
tập dữ liệu
Chúng tôi sẽ sử dụng bộ dữ liệu covid-19 Ấn Độ từ Kaggle- https. //www. kaggle. com/sudalai rajkumar/covid 19-india
Như chúng ta có thể thấy từ tập dữ liệu, đó là bản ghi covid với các số trên toàn tiểu bang
Trước tiên, hãy lưu trữ CSV này trong đám mây MongoDB của chúng tôi và tạo cơ sở dữ liệu ở đó
Sau khi đăng nhập vào đám mây MongoDB, chúng ta sẽ truy cập vào một giao diện người dùng, giao diện này sẽ giống như thế này
Bây giờ chúng tôi sẽ nhấp vào nút tạo và sẽ chọn phiên bản được chia sẻ, vì đây chỉ dành cho mục đích học tập
Hãy tạo một tên cơ sở dữ liệu covid và có một bộ sưu tập bên trong nó có tên là covid_state_dataset
Khi bạn đã tạo bộ sưu tập của mình, nó sẽ trông giống như thế này
Bây giờ, hãy chèn CSV vào bộ sưu tập này chỉ bằng python
Hãy mở pycharm của chúng ta và tạo một tệp và đặt tên là insert_data. py
Chúng tôi sẽ sử dụng pymongo để kết nối với MongoDB, vì vậy hãy đảm bảo rằng bạn đã cài đặt nó
pip3 install pymongo
Hãy bắt đầu viết mã của chúng tôi
Trước hết, chúng ta sẽ tạo một hàm chuyển đổi CSV thành danh sách tài liệu để có thể chèn dễ dàng vào cơ sở dữ liệu của chúng ta
Đừng lo lắng về mã, tôi cũng sẽ cung cấp liên kết GitHub ở cuối
import csv
def get_dataset_list[]:
with open['covid_19_india.csv'] as f:
dataset = [{k:v for k, v in row.items[]} for row in csv.DictReader[f, skipinitialspace = True]]
return dataset
Bây giờ hãy viết hàm MongoDB để chèn dữ liệu này vào cơ sở dữ liệu của chúng ta
Bạn sẽ được yêu cầu đưa địa chỉ IP của mình vào danh sách trắng, vì đám mây mongo yêu cầu điều đó vì lý do bảo mật
có thể dễ dàng thực hiện bằng cách nhấp vào truy cập mạng và sau đó vào Danh sách truy cập IP
Có thể tìm thấy chuỗi kết nối MongoDB từ tùy chọn kết nối trong menu cơ sở dữ liệu
Hãy viết mã của chúng tôi để chèn tập dữ liệu này vào bộ sưu tập của chúng tôi
import pymongo
import csv
def get_dataset_list[]:
with open['covid_19_india.csv'] as f:
dataset = [{k:v for k, v in row.items[]} for row in csv.DictReader[f, skipinitialspace = True]]
return dataset
def insert_data[]:
dataset = get_dataset_list[]
try:
client = pymongo.MongoClient['mongo connection string']
db = client['covid']
collection = db['covid_state_dataset']
collection.insert_many[dataset]
return "Data inserted successfully"
except Exception as e:
print[e]
return "Sorry! something went wrong."
print[insert_data[]]
Trong khối mã này, chỉ cần thay thế chuỗi kết nối mongo bằng chuỗi của bạn, nó sẽ hoạt động
Trong đám mây MongoDB, chúng ta có thể thấy rằng 18110 bản ghi đã được chèn vào
Bây giờ chúng ta đã hoàn thành việc nhập dữ liệu, Bây giờ chúng ta hãy làm ngược lại điều này nhưng theo cách rõ ràng hơn
Hãy tạo một sổ làm việc XLSX của cơ sở dữ liệu này với các trang tính theo trạng thái
Bộ sưu tập cơ sở dữ liệu vào tệp XLSX
Giả sử chúng tôi muốn có tệp XLSX với bộ dữ liệu Kerala, Uttar Pradesh và Bihar
Chúng tôi sẽ sử dụng padas để tạo sổ làm việc
def create_xlsx_workbook[]:
try:
# connection with mogodb
client = pymongo.MongoClient['mongo connection string']
db = client['covid']
collection = db['covid_state_dataset']
# state list for which we want the dataset
state_list = ["Kerala", "Bihar", "Uttar Pradesh"]
sheet_list= {}
for state in state_list:
# getting records of each state
dataset = list[collection.find[{"State/UnionTerritory": state}]]
# converting the dataset into dataframe
dataset = pd.DataFrame.from_dict[dataset]
# creating a dictionaries with key as state name and value as the dataframe
sheet_list[state] = dataset
writer = pd.ExcelWriter['./covid.xlsx', engine='xlsxwriter']
# looping through the state names and writing their dataframe into sheets
for sheet_name in sheet_list.keys[]:
sheet_list[sheet_name].to_excel[writer, sheet_name=sheet_name, index=False]
writer.save[]
return "Workbook created successfully"
except Exception as e:
print[e]
return "Sorry! something went wrong."
Cuối cùng, chúng tôi có sổ làm việc với chúng tôi, với các trang tính thông thái. Chúng tôi đã sử dụng gấu trúc để tạo sổ làm việc, vì vậy hãy đảm bảo rằng bạn đã cài đặt nó
pip3 install pandas
Sổ làm việc sẽ được lưu trong cùng thư mục nơi chúng tôi có tệp mã của mình
Liên kết Github – https. //github. com/Utkarsh731/database_to_xlsx_workbook/tree/main
Phần kết luận
Cảm ơn bạn đã đọc blog này, tôi hy vọng bạn đã tìm thấy thông tin hữu ích, hãy cho tôi biết nếu bạn có bất kỳ câu hỏi nào
Để biết thêm blog, hãy kiểm tra-
- https. //utkarsh shukla. herokuapp. com/
- https. // statusneo. com/tác giả/utkarsh-shukla/
- https. // statusneo. com/blog
0 Bình luận
Thích
cơ sở dữ liệu sang excel, Danh sách từ điển sang excel, python, Python. Chuyển đổi Cơ sở dữ liệu [Bảng] sang XLSX, utkarsh, Utkarsh Shukla, tác giả utkarsh shukla, blog utkarsh shukla, utkarshshuklapython