Bonjour à tous. J'essaie de traiter et de remplacer les données d'un tableau d'une base de données; plus précisément celles correspondant à la colonne tags d'un tableau facts (en utilisant au passage la colonne id des identifiants).
Le code est le suivant:
La boucle for n'est itéré qu'une seule fois au lieu des 5000 et quelques prévues. Ceci est dû à l'utilisation de cursor.execute(sql) (marqué ### dans le code) car sans cette ligne il y a bien 5000 et quelques itérations.
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
18
19
20
21 # -*- coding: utf-8 -*- import sqlite3, re def parseTags(tags): "Modification des tags" # J'ai remplacé la vraie fonction par celle-là (qui n'a pas de sens) pour simplifier return tags + "ZZZ" connexion = sqlite3.connect('/home/identifiant/chemin/fichier.db') cursor = connexion.cursor() selectSql = cursor.execute("select id, tags from facts ORDER BY id;") i = 0 for idt, tag in selectSql: tag = parseTags(tag) sql = "update facts set tags='%s' where id='%i'" %(tag, idt) cursor.execute(sql) ### i += 1 print "nombre d'itération(s):", i
Quel est le problème?
Partager