Je gère des requêtes sur MySQL à travers Python. Une fois la lecture des données, je voudrais les trier par pourcentage. Toute aide serait volontiers appréciée.
La méthode que j'utilise pour écrire est la suivante: p> contrôleur em> strong> est des informations d'identification pour faire une communication réussie. P> Une fois écrit au fichier est le suivant: P> DESKTOP
Owner: Nan
Values: 231.8 out of 329.2
Percent used: 70%
REGRESSION
Owner: None
Values: 6.6 out of 10.2
Percent used: 64%
POC
Owner: ACE
Values: 45.1 out of 81.5
Percent used: 55%
3 Réponses :
Pour trier les données, vous devez obtenir les données de la base de données, trier, puis l'imprimer dans le fichier au lieu d'écrire dans le fichier après chaque ligne. Quelque chose comme ceci:
Bigo. Peut-être devriez-vous envisager de calculer le pourcentage à l'intérieur de votre requête MySQL et d'utiliser la commande pour obtenir le droit de commander.
Puis, sur Python, vous aurez déjà les enregistrements dans l'ordre que vous avez destiné. P>
Par exemple : p> puis faites ce que vous voulez avec les données p> p>
Ajouter des sections à une liste, trier la liste des listes par le dernier élément, puis sortie la liste:
from operator import itemgetter report = [] for r in cursor: # show tables one by one if str(type(r[5])) == "<class 'decimal.Decimal'>": percent = r[5] / r[2] * 100 if percent > mid_critical and percent < critical: report.append( ( str(r[1]), "\nOwner:", str(r[8]), "\nValues:", str(r[5]), "out of", str(r[2]), "\nPercent used: %d%% \n" % (percent), ) ) report.sort(key=itemgetter(-1), reverse=True) with open("report.txt", "a") as f: print("\n******************* Mid Critical: **************", file=f) print("\n".join(report))
Bonjour @ipaleka, le code fonctionne. Seule problème est que la liste va de petit à gros. Je l'aimerais de gros à petit. De plus, la sortie ne sort pas correctement. La sortie im obtenue à partir de maintenant est ('cvs_functional', '\ NOWNER:', "retiré", "\ nvalues:", décimal ("19,3"), "de", décimal ("31 .8 ") , '\ Npercent utilisé: 57% \ n') i>
J'ai ajouté inverse = true code> pour le premier problème. Et sur l'autre problème, j'ai ajouté
str () code>, mais je ne sais pas pourquoi cela se passe dans mon code et non dans la tienne.