def main(): start_time = time.time() i = 0 # récupération de tous les json du dossier folder f_test = glob.glob(folder+'*.json') nb_f = f_test.__len__() db = postgresql.open(IRI + database_name) # Création de la table 'velov' utils_Json_Postgres.create_table(db, sql_table, table_name, database_name) # Si la table existe déjà, la connexion est fermée automatiquement # construction de la liste de valeurs à insérer dans l'ordre annoncée des VALUES while i<nb_f: print("******* fichier %s" %i) # si la connexion est fermée -> la réouvrir if db.closed: db = postgresql.open(IRI + database_name) # chargement et modification du json pour préparation à l'insertion en bdd data, d = utils_Json_Postgres.data_create(f_test[i], False, set_int, set_float, set_date) # Déclaration et préparation de la requête d'insertion sql_insert = utils_Json_Postgres.cons_insert(table_name, data) statement = None try: statement = db.prepare(sql_insert) except exceptions.DuplicateTableError: print("Une exception est soulevée!!! Erreur sur la requête d'insertion") # insertion des lignes utils_Json_Postgres.insertion(data, d, statement) i += 1 tmp = time.time() - start_time tmp = str(datetime.timedelta(seconds=tmp)) print(" Tps execution --- %s ---" % tmp)
def dl_insert(param_results, param_s_f, param_outpath, param_format_f, param_IRI, param_database_name, param_table_name): start_time = time.time() db = postgresql.open(param_IRI + param_database_name) nb_files = 0 #récupération des fichiers items = param_results.get('files', []) if not items: print('No files found.') else: print('Files:') for item in items: print('{0} ({1})'.format(item['name'], item['id'])) file_id = item['id'] file_name = item['name'] # filtrage sur le 26/01 if file_name[0:10] == '26/01/2016': nb_files += 1 print("*******Chargement et traitement du fichier******", file_name) file_name = file_name.replace("/", "_").replace(" ", "_").replace(":", "_") # chargement get_media request = param_s_f.get_media(fileId=file_id) outfilename = param_outpath+file_name+"."+param_format_f outfile = io.FileIO(outfilename, mode='w+') downloader = googleapiclient.http.MediaIoBaseDownload(outfile, request) done = False while done is False: status, done = downloader.next_chunk() #vérification de l'ouverture de la connexion à la BDD if db.closed: print("!!Connexion réouverte!!") db = postgresql.open(param_IRI + param_database_name) data, d = utils_Json_Postgres.data_create(outfilename, False, set_int, set_float, set_date) # Déclaration et préparation de la requête d'insertion sql_insert = utils_Json_Postgres.cons_insert(param_table_name, data) statement = None try: statement = db.prepare(sql_insert) except exceptions.DuplicateTableError: print("Une exception est soulevée!!! Erreur sur la requête d'insertion") utils_Json_Postgres.insertion(data, d, statement) print("Tps execution pour le chargement et l'insertion des %s fichiers" % nb_files) print(" --- %s seconds ---" % (time.time() - start_time)) return nb_files