首页 > 解决方案 > 从 ipyton Notebook 下载 SQL 数据库

问题描述

我正在通过 Notebook 处理 python,目前我正在通过 python 处理 SQL。我正在尝试下载 SQL 数据库或将其更改为 csv 然后再下载。我知道已经通过 ipython Notebook 将数据帧下载到 csv 中,请参见下面我发现的内容:

第一:打开sql数据库,将一张表改成df

import sqlite3, sqlalchemy
import pandas as pd

db_name = "chinook.db"
table_name = "albums"

engine = sqlalchemy.create_engine("sqlite:///%s" % db_name, execution_options={"sqlite_raw_colnames": True})
df = pd.read_sql_table(table_name, engine)

然后我使用我的代码通过更改一行将数据帧下载到 csv 中:

import base64
import pandas as pd
from IPython.display import HTML


df1 = pd.read_sql_table(table_name, engine)   #here the change

def create_download_link( df, title = "Download CSV file", filename = "data.csv"):
    csv = df.to_csv(index=False)
    b64 = base64.b64encode(csv.encode())
    payload = b64.decode()
    html = '<a download="{filename}" href="data:text/csv;base64,{payload}" target="_blank">{title}</a>'
    html = html.format(payload=payload,title=title,filename=filename)
    return HTML(html)

df = pd.DataFrame(data = df1)
create_download_link(df)

我在 csv 上得到了一个完美的数据框,但只有一张桌子。

在此处输入图像描述

我的数据库中有以下所有表格,因此如果一次一张地完成并合并所有表格,那就太棒了。

['albums', 'artists', 'customers', 'employees', 'genres', 'invoice_items', 'invoices', 'media_types', 'playlist_track', 'playlists', 'sqlite_sequence', 'sqlite_stat1', '曲目']

我试图但 > table_name =['albums','artists',...] 中的列表但我收到一个错误:TypeError: unhashable type:'list'

这是一个开始,但如果你们有任何想法,请告诉我

标签: pythonmysqljupyter-notebook

解决方案


推荐阅读