Chuyển đổi tệp db sang Excel Python

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ảng300

Dướ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ảng300

Bạ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

Bộ dữ liệu Covid

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 ở đó

Giao diện người dùng bản đồ MongoDB

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

Giao diện người dùng tạo cụm

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

Đã tạo bộ sưu tập

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
Mã được biên dịch thành công

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

Giao diện người dùng danh sách trắng 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

MongoDB Kết nối với giao diện người dùng cụm

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

Mã được biên dịch thành công
Thu thập tập dữ liệu trạng thái Covid

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."
Mã được biên dịch thành công
Kết quả sổ làm việc sau khi biên dịch mã

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

Làm cách nào để chuyển đổi cơ sở dữ liệu sang Excel trong Python?

Chương trình xuất dữ liệu từ MySQL sang bảng excel bằng Python .
Nhập tất cả các mô-đun [pymysql, xlwt, pandas. .
phương thức connect[] của pymysql sẽ kết nối mysql với python. .
phương thức read_sql[] của gấu trúc. .
In khung dữ liệu
phương thức to_excel[] của mô-đun xlwt sẽ lưu dữ liệu trong trang tính excel trong đó ds

Làm cách nào để chuyển đổi tệp db thành CSV bằng Python?

Các bước để xuất bảng SQL Server 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]. cài đặt pip pyodbc. .
Bước 2. Kết nối Python với máy chủ SQL. .
Bước 3. Xuất bảng máy chủ SQL sang CSV bằng Python

Python có đọc được không. tập tin DB?

Trong trường hợp của bạn, nếu bạn chạy Python trên máy cục bộ của mình, bạn có thể sử dụng ứng dụng khách SQL của mình để kết nối trực tiếp với tệp cơ sở dữ liệu . Trong DBeaver, tạo kết nối mới và chọn SQLite làm loại DB. Sau đó, duyệt tệp DB. Bây giờ, bạn có thể chạy bất kỳ truy vấn SQL nào trên cơ sở dữ liệu.

Làm cách nào để xuất dữ liệu từ SQLite sang Excel bằng Python?

Từ SQLite đến Excel . Chúng tôi đang sử dụng khối mã try except để xử lý lỗi nếu có. Sử dụng Pandas DataFrame df, chúng tôi sẽ sử dụng to_sql[] để thêm khung dữ liệu vào trang tính Excel. từ sqlalchemy nhập create_engine từ sqlalchemy. use read_sql[] to create the DataFrame by using the query. We are using try except code block to handle errors if any. Using the Pandas DataFrame df, we will use to_sql[] to add the dataframe to Excel sheet. from sqlalchemy import create_engine from sqlalchemy.

Chủ Đề