Читать таблицы SQL в Python - PullRequest
0 голосов
/ 25 июня 2018

У меня есть файл .sql, который я просто хочу прочитать в кадре данных Pandas в Jupyter Notebook. С файлами CSV мне просто нужно было загрузить файл и создать фрейм данных, используя что-то вроде этого:

df = pd.read_csv('file.csv')

Я понял, что мой файл SQL должен обслуживаться с помощью приложения базы данных, такого как MySQL. Возможно, есть какой-нибудь способ локального размещения файла .sql? Мне не нужно делать какие-либо манипуляции с базой данных - я просто хочу прочитать значения таблицы.

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Я предполагаю, что вы пытаетесь импортировать таблицу в pandas только из файла .sql без подключения к серверу SQL или использования каких-либо SQL-серверов.Но файлы .sql содержат только некоторые запросы, или даже если вы экспортировали таблицу в файл .sql, для чтения в фрейм pandas потребуется активное соединение с базой данных.Вы можете просмотреть все функции pandas для чтения или записи SQL в IO Tools и заметить, что все доступные функции требуют активного соединения.

0 голосов
/ 25 июня 2018

Полагаю, вам следует поработать с этой веб-ссылкой, которая будет напрямую принимать дамп sql, создавать CSV и затем загружать его
http://www.convertcsv.com/sql-to-csv.htm

или Вы можете использовать

подпроцесс импорта

proc = subprocess.Popen(["mysql", "--user=%s" % USER, "--password=%s" % PASS, "database"],
                        stdin=subprocess.PIPE,
                        stdout=subprocess.PIPE)
out, err = proc.communicate(file("/tmp/dump.sql").read())
0 голосов
/ 25 июня 2018
import pandas as pd
import pyodbc
from sqlalchemy import create_engine
engine = create_engine('mysql+pyodbc://<username>:<password>@<server>:<port>/<db_name>?driver=<driver_name>')
with open('Path/to/xxx.sql', 'r') as sql_file:
    query = sql_file.read()
df = pd.read_sql(query, con=cnxn)

вся информация в <> относится к вашей настройке

...