probleme insertion BDD MySQL
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.
Code:
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() |
voici ma fonction. stat[3] est une float dans la base.
La fonction marche mais plante de manière aléatoire. Dons mon fichier de log j'ai cette erreur:
Code:
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'") |
Après quelques recherches l'erreur 1054 signifie :
'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!!