Boucle de traitements, données BDD
Utilisateur anonyme
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je récupère des données SQL en Python.
Je ne parviens pas à implémenter la boucle avec cette logique.
Je souhaiterais que pour chaque champ "code" PUIS pour chaque champ "libelle" d'un même code, mon code me fasse un calcul pour chaque nom.
Ainsi, en sortie, je souhaiterais lister une ligne par code et par libellé en csv
Ça donnerait donc ça en sortie :
aaa;libelleA;v3; autreChampDeLaBDD;
bbb;libelleB;v3; autreChampDeLaBDD;
ccc;libelleA;v3; autreChampDeLaBDD;
ccc;libelleB;v3; autreChampDeLaBDD;
ddd;libelleA;v3; autreChampDeLaBDD;
Voici un extrait des données dans ma BDD :

Voici mon code actuel :
En l'état actuel, j'arrive à incrémenter correctement "v3".
Pour le reste, les différents tutos du net ne m'ont pas aidé...
Qui aurait une solution ? :-)
Merci par avance de votre aide
Rom
Je récupère des données SQL en Python.
Je ne parviens pas à implémenter la boucle avec cette logique.
Je souhaiterais que pour chaque champ "code" PUIS pour chaque champ "libelle" d'un même code, mon code me fasse un calcul pour chaque nom.
Ainsi, en sortie, je souhaiterais lister une ligne par code et par libellé en csv
Ça donnerait donc ça en sortie :
aaa;libelleA;v3; autreChampDeLaBDD;
bbb;libelleB;v3; autreChampDeLaBDD;
ccc;libelleA;v3; autreChampDeLaBDD;
ccc;libelleB;v3; autreChampDeLaBDD;
ddd;libelleA;v3; autreChampDeLaBDD;
Voici un extrait des données dans ma BDD :

Voici mon code actuel :
#!/usr/bin/env python # -*- coding: utf-8 -* # on importe les modules necessaires import MySQLdb import sys import csv # On créé un dictionnaire contenant les paramètres de connexion MySQL paramMysql = { 'host' : '', 'user' : '', 'passwd' : '', 'db' : '' } ############################################### sql = """\ SELECT nom, v1, v2, code, libelle FROM table ; """ try: # On créé une conexion MySQL conn = MySQLdb.connect(**paramMysql) # On créé un curseur MySQL cur = conn.cursor(MySQLdb.cursors.DictCursor) # On exécute la requête SQL cur.execute(sql) # On récupère toutes les lignes du résultat de la requête rows = cur.fetchall() # On parcourt toutes les lignes dict = {} for row in rows: # Pour récupérer les différentes valeurs des différents champs nom = row['nom'] v1 = row['v1'] v2 = row['v2'] code = row['code'] libelle = row['libelle'] # etc etc ... #Traitement d'une value if v2 <= xx: v3 = xx elif v2 > xx: v3 = xx #Pour chaque code, on va effectuer l'opération suivante : #Si v3 existe déjà dans le même pour le code, on incrémente le compteur if code in dict.keys(): dict[code] += v3 #Sinon on le créé else: dict[code] = licences #On incrémente un autre compteur if "A" in libelle: v4 = xxx elif "B" in libelle: v4 = xxx print (code, dict[code], v4, libelle) except MySQLdb.Error, e: # En cas d'anomalie print "Error %d: %s" % (e.args[0],e.args[1]) sys.exit(1) finally: # On ferme la connexion if conn: conn.close()
En l'état actuel, j'arrive à incrémenter correctement "v3".
Pour le reste, les différents tutos du net ne m'ont pas aidé...
Qui aurait une solution ? :-)
Merci par avance de votre aide
Rom
A voir également:
- Boucle de traitements, données BDD
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Liste des maladies et leurs traitements - Télécharger - Bureautique
- Reconsidérer le traitement de vos données à des fins publicitaires - Accueil - Réseaux sociaux