SQLAlchemy ORM de conversion pour les pandas DataFrame
Ce sujet n'a pas été abordé dans un certain temps, ici ou ailleurs. Est-il une solution à la conversion d'un SQLAlchemy <Query object>
à une pandas DataFrame?
Pandas a la capacité d'utiliser pandas.read_sql
mais cela nécessite l'utilisation de SQL brut. J'ai deux raisons pour vouloir l'éviter: 1) j'ai déjà tout à l'aide de l'ORM (une bonne raison en soi) et 2) je suis à l'aide de python listes dans le cadre de la requête (par exemple: .db.session.query(Item).filter(Item.symbol.in_(add_symbols)
où Item
est mon modèle de classe et de add_symbols
est une liste). C'est l'équivalent de SQL SELECT ... from ... WHERE ... IN
.
Est quelque chose de possible?
Vous devez vous connecter pour publier un commentaire.
Ci-dessous devrait fonctionner dans la plupart des cas:
Voir
pandas.read_sql
la documentation pour plus d'informations sur les paramètres.df = pd.read_sql(query, query.bind)
quandquery
est unsqlalchemy.sql.selectable.Select
. Sinon, j'ai eu'Select' object has no attribute 'session'
.con
paramètre, qui peut être leengine
ouconnection string
Juste pour que cela soit plus clair pour les débutants comme les pandas programmeurs, voici un exemple concret,
Ici, nous sélectionnons une plainte à la suite de plaintes de table (modèle sqlalchemy est Plainte) avec l'id = 2
.statement
faire?La solution choisie ne fonctionne pas pour moi, que j'ai gardé l'obtention de l'erreur
J'ai trouvé le suivant travaillé:
Si vous voulez compiler une requête avec des paramètres et le dialecte des arguments précis, utiliser quelque chose comme ceci: