Il s'agit d'une question simple à laquelle je n'ai pas trouvé de réponse. J'ai un fichier .SQL avec deux commandes. J'aimerais que les Pandas tirent le résultat de ces commandes dans un DataFrame.Lecture d'un fichier SQL externe dans une base de données Pandas
Les commandes du fichier SQL sont en tant que telles, avec la requête la plus longue utilisant la date du jour.
SET @todaydate = DATE(NOW());
SELECT ...long query....;
J'ai essayé d'utiliser read_sql de la façon suivante après avoir établi ma connexion (prod_db) et le message d'erreur « objet » NoneType « est pas itérables »
sqlpath = 'path.sql'
scriptFile = open(sqlpath,'r')
script = scriptFile.read()
df = pd.read_sql(script,prod_db)
J'ai aussi essayé d'utiliser la fonction et l'approche décrites ici reading external sql script in python mais je ne sais pas comment obtenir le résultat dans un cadre de données pandas (ou peut-être qu'il me manque quelque chose). Il ne semble pas lire les résultats car je reçois plusieurs fois la commande "Commandé".
def executeScriptsFromFile(filename):
fd = open(filename, 'r')
sqlFile = fd.read()
fd.close()
# all SQL commands (split on ';')
sqlCommands = sqlFile.split(';')
# Execute every command from the input file
for command in sqlCommands:
try:
c.execute(command)
except OperationalError, msg:
print "Command skipped: ", msg
df = executescriptsfromfile(sqlpath)