mysql .connector аналог SQLAlchemy pd.to_sql - PullRequest
0 голосов
/ 16 июня 2020

При программировании на Python и работе с SQL dbs я ранее использовал библиотеку mysql .connector, но я обнаружил, что для помещения ваших данных в таблицу SQL требуется много строк кода, потому что вы нужно написать весь запрос SQL столбец за столбцом. С другой стороны, при использовании pandas есть простые методы, работающие только с библиотекой SQLalchemy: - pd.to_sql - pd.read_sql_table (Ну, я получил ошибки при использовании mysql db.cursor () и не смог найти никакого руководства помимо SQLalchemy + Pandas). Эти два метода позволяют легко получить фрейм данных из таблицы SQL и создать таблицу SQL из фрейма данных.

Интересно, есть ли такой аналог в mysql .connector, чтобы легко преобразовать фрейм данных в таблицу SQL и наоборот, так как по-прежнему синтаксис этой библиотеки для меня удобнее для других действий, чем SQL ???

PS MySQL код инициации написано только для информации и не используется в предоставленном коде, хотя мне нужно как-то найти аналог

# ------------------- IMPORT -------------------------
import mysql.connector
import pandas as pd
import sqlalchemy

# ------------------- MYSQL + SQL Alchemy -------------------------
mydb = mysql.connector.connect(
    host='host',
    user='user',
    passwd='pass',
    database='db'
)

mycursor = mydb.cursor()
engine = sqlalchemy.create_engine('mysql+mysqldb://user:pass@host/db', pool_recycle=3600)

# ------------------- FUNCTIONS ----------------------
def get_function():
    df = pd.read_html(
        "https://www.url.com")
    df[3].to_sql(name=table, con=engine, index=False, if_exists='replace')


# -------------------- MAIN --------------------------
table = 'table_name'
get_function()
print(pd.read_sql_table(table, engine, columns=[]))

1 Ответ

1 голос
/ 16 июня 2020

Ваш вопрос не очень ясен, поэтому я не совсем уверен, что вы пытаетесь сделать, но я постараюсь изо всех сил ответить.

Итак, SQLAlchemy - это так называемый Object-relational-Mapper (например, Hibernate в мире Java), который сопоставляет отношения (столбцы, строки, таблицы) и объекты.

Pandas - это библиотека анализа данных, которая можно использовать SQLAlchemy. Сам SQLAlchemy поддерживает широкий спектр баз данных , включая MySQL.

Теперь я не понял, хотите ли вы использовать Pandas + SQLAlchemy + MySQL или хотите ли вы просто работать с MySQL напрямую. В первом случае вы можете просто использовать Pandas, во втором - напрямую использовать SQLAlchemy. Pandas предоставляет документацию , а также SQLAlchemy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...