Чтение таблицы из SQL Server в DataFrame с использованием SQLAlchemyPython

Программы на Python
Ответить
Anonymous
 Чтение таблицы из SQL Server в DataFrame с использованием SQLAlchemy

Сообщение Anonymous »

У меня есть таблица с именем «продукты» на SQL Server. Я хотел бы прочитать таблицу в DataFrame в Python с помощью SQLAlchemy.
Функция pandas.read_sql имеет параметр «sql», который принимает два типа «выбираемых» объектов SQLAlchemy: p>
  • выбрать объект
  • текстовый объект
Мне удалось использовать текстовый объект, но не удалось использовать объект выбора. Какие исправления необходимы?
успешный код с использованием текстового объекта:
import pandas as pd

from sqlalchemy import text
from sqlalchemy.engine import URL
from sqlalchemy import create_engine

url_object = URL.create(
"mssql+pyodbc",
host="abgsql.xx.xx.ac.uk",
database="ABG",
query={
"driver": "ODBC Driver 18 for SQL Server",
"TrustServerCertificate": "yes",
},
)
engine = create_engine(url_object)
stmt = text("SELECT * FROM products")
df = pd.read_sql(sql=stmt, con=engine)

не удалось выполнить код с использованием объекта выбора:
import pandas as pd

from sqlalchemy import select
from sqlalchemy.engine import URL
from sqlalchemy import create_engine

from sqlalchemy import Table, MetaData

url_object = URL.create(
"mssql+pyodbc",
host="abgsql.xx.xx.ac.uk",
database="ABG",
query={
"driver": "ODBC Driver 18 for SQL Server",
"TrustServerCertificate": "yes",
},
)
engine = create_engine(url_object)
products = Table("products", MetaData())
stmt = select(products)
df = pd.read_sql(sql=stmt, con=engine)

sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42000', "[42000] [Microsoft][ODBC Driver 18 for SQL Server][SQL Server]Incorrect syntax near the keyword 'FROM'. (156) (SQLExecDirectW)")
[SQL: SELECT
FROM products]
(Background on this error at: https://sqlalche.me/e/20/f405)


Подробнее здесь: https://stackoverflow.com/questions/793 ... sqlalchemy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»