如何利用Python高效导出数据库中的数据?

1、使用SQLite3库

连接到SQLite数据库。

如何利用Python高效导出数据库中的数据?插图1
(图片来源网络,侵删)

执行SQL查询语句获取数据。

将结果写入CSV文件。

import sqlite3
连接到SQLite数据库
conn = sqlite3.connect('example.db')
cursor = conn.cursor()
执行SQL查询语句
cursor.execute("SELECT * FROM my_table")
rows = cursor.fetchall()
将结果写入CSV文件
with open('output.csv', 'w') as file:
    for row in rows:
        file.write(','.join([str(item) for item in row]) + '
')
关闭连接
conn.close()

2、使用Pandas库

连接到数据库并读取数据到DataFrame。

将DataFrame导出为CSV或Excel文件。

如何利用Python高效导出数据库中的数据?插图3
(图片来源网络,侵删)
import pandas as pd
import sqlite3
连接到SQLite数据库
conn = sqlite3.connect('example.db')
使用Pandas读取SQL查询结果
df = pd.read_sql_query("SELECT * FROM my_table", conn)
导出结果到CSV文件
df.to_csv('output.csv', index=False)
关闭连接
conn.close()

3、使用SQLAlchemy

创建数据库引擎。

执行SQL查询并将结果转换为DataFrame。

导出DataFrame为CSV文件。

from sqlalchemy import create_engine
import pandas as pd
创建数据库引擎
engine = create_engine('sqlite:///example.db')
使用Pandas读取SQL查询结果
df = pd.read_sql_query("SELECT * FROM my_table", engine)
导出结果到CSV文件
df.to_csv('output.csv', index=False)

4、使用PyMySQL连接MySQL数据库

如何利用Python高效导出数据库中的数据?插图5
(图片来源网络,侵删)

连接到MySQL数据库。

执行SQL查询并将结果转换为DataFrame。

导出DataFrame为CSV文件。

import pandas as pd
import pymysql
连接到MySQL数据库
conn = pymysql.connect(
    host='localhost',
    user='username',
    password='password',
    db='database_name'
)
使用Pandas读取SQL查询结果
df = pd.read_sql_query("SELECT * FROM my_table", conn)
导出结果到CSV文件
df.to_csv('output.csv', index=False)
关闭连接
conn.close()

5、使用CSV模块

连接到数据库并执行查询。

使用csv.writer将结果写入CSV文件。

import csv
import mysql.connector
连接到MySQL数据库
conn = mysql.connector.connect(
    host='localhost',
    user='username',
    password='password',
    db='database_name'
)
cursor = conn.cursor()
执行SQL查询语句
cursor.execute("SELECT * FROM your_table_name")
使用csv.writer将结果写入CSV文件
with open('output.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow([i[0] for i in cursor.description])  # 写入列名
    writer.writerows(cursor.fetchall())  # 写入数据行
关闭连接
cursor.close()
conn.close()

6、处理大数据量导出

分批次读取和导出数据,以减少内存压力。

import pandas as pd
import sqlite3
连接到SQLite数据库
conn = sqlite3.connect('example.db')
chunk_size = 1000  # 每次读取1000行数据
分批次读取和导出数据
chunks = pd.read_sql_query("SELECT * FROM my_table", conn, chunksize=chunk_size)
for i, chunk in enumerate(chunks):
    chunk.to_csv(f'output_{i}.csv', index=False)
关闭连接
conn.close()

以上就是关于“python 数据库导出_导出数据库”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/69011.html

(0)
上一篇 2024年10月5日 22:18
下一篇 2024年10月5日 22:32

相关推荐