Je suis à la recherche d'un moyen simple pour comparer les types de colonnes de SQLAlchemy aux types de base. Par exemple, si mon type de colonne est un VARCHAR de n'importe quelle longueur, je veux le lire comme une chaîne.Conversion facile entre les colonnes SQLAlchemy et les types de données?
Je peux lire le type de colonne okay, mais je ne suis pas sûr un moyen facile de vérifier son type de base ... ce serait bien si je pouvais utiliser quelque chose comme "if isinstance (mycolumn, int)" - mais Je suis nouveau sur python et je ne sais pas comment cela fonctionnerait.
Voici ce que j'ai jusqu'à présent:
from sqlalchemy import MetaData
from sqlalchemy import create_engine, Column, Table
engine = create_engine('mysql+mysqldb://user:[email protected]:3306/mydb', pool_recycle=3600)
meta = MetaData()
meta.bind = engine
meta.reflect()
datatable = meta.tables['my_data_table']
[c.type for c in datatable.columns]
Sortie:
[INTEGER(display_width=11), DATE(), VARCHAR(length=127), DOUBLE(precision=None, scale=None, asdecimal=True)]
Mon but final est double, d'abord parce que je veux formater la sortie en fonction du type lorsque je charge dans mon jQuery jqGrid. Deuxièmement, je convertis lentement des tableaux de données non normalisés en une structure normalisée, et je veux m'assurer que mes types restent cohérents - (pour m'assurer que mes nombres dans le tableau précédent sont stockés sous forme de nombres et non de chaînes ...)
Merci Adam Morris, exactement ce qu'il cherchait. – csharpbd