Bonjour,
Je suis débutant en python et j'ai un bug qui arrive de manière aléatoire que je n'arrive pas à résoudre.
Ma fonction permet de récupérer des statistiques (CPU usage etc...) et insert ces information en base de donnée.
voici ma fonction. stat[3] est une float dans la base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 args = list() for k, dev in stats.items(): for stat in dev: args.append((stat[0], instant, stat[1], stat[2], stat[3])) if len(args) != 0 : MYSQL_CURSOR.executemany("""INSERT INTO stats VALUES (%s, %s, %s, %s, %s)""", args) MYSQL_DB.commit()
La fonction marche mais plante de manière aléatoire. Dons mon fichier de log j'ai cette erreur:
Après quelques recherches l'erreur 1054 signifie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Exception in thread Thread-17675: Traceback (most recent call last): File "/usr/lib/python2.4/threading.py", line 442, in __bootstrap self.run() File "/usr/lib/python2.4/threading.py", line 607, in run self.function(*self.args, **self.kwargs) File "/usr/local/sbin/stats.py", line 90, in boucle insertBDD(copy.copy(stats), instant - instant % INTERVAL) File "/usr/local/sbin/stats.py", line 59, in insertBDD args) File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 216, in executemany r = self._query(',\n'.join(q)) File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 309, in _query rowcount = self._do_query(q) File "/usr/lib/python2.4/site-packages/MySQLdb/cursors.py", line 273, in _do_query db.query(q) OperationalError: (1054, "Unknown column 'nan' in 'field list'")
'nan' is a special float value which stands for 'not a number'. You
should not be able to store this into a float column in MySQL.
Ce que je ne comprend pas c'est pourquoi il plante de temps en temps et surtout je ne sais pas quoi changer.
Si vous avez des idées , je suis preneur !
Merci!!
Partager