IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

TypeError:indice must be integers


Sujet :

Python

  1. #1
    Membre actif
    Inscrit en
    Août 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 35
    Par défaut TypeError:indice must be integers
    Bonsoir à tous,
    j'ai une erreur à laquelle je ne trouve pas de solution.Le problème est le suivant je veux faire un calcul avec le résultat d'une requête.
    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	def confirm(self, cr, uid,ids,context=None):
    		val= 0.0	
    		res = {}  
     		for order in self.browse(cr, uid,ids,context=context):
    			for record in order.deliveryline:
    				cr.execute("select p.stock_initial from logistic_product p where   p.id=%s",(record.product_id.id,))
     				res = cr.dictfetchall() 
                    for elt in res :
    		     val = record.quantity + res[elt]
                    cr.execute("UPDATE logistic_product SET stock_initial=%s where id=%s", (val,record.product_id.id))
    		return True
    Voici l'erreur :list indice must be integers,not dict.
    Merci de m'aider.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 730
    Par défaut
    Salut,

    Indiquer la ligne ou est levée l'erreur *et* la copie de la trace?
    Sinon on joue a renifler... et faire des paris...
    Par la peut être?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    for elt in res :
    		     val = record.quantity + res[elt]
    Mais comme le code ne veut pas croire pas a ce qu'il fait, c'est tres ouvert...
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Bonsoir,
    Le petit, tout petit problème est que, à par toi, personne ne sait ce que représentent tes variables…
    En particulier cr…
    Et les méthodes…

    Il y a des choses qui me semblent curieuses dans ton code!!
    La variable "res" est initialisée à un dictionnaire vide puis elle est assignée au renvoie de "cr.dictfetchall()"… C'est étrange.

    C'est pour la boucle?

    Pour un petit coup de main, il serait peut-être judicieux d'ajouter un petit "print" juste avant la ligne 9 (ne serait-ce que pour connaître le type de "res" et son contenu)!!!

    Clodion

    Edit: Désolé wiztricks! :-)

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/05/2014, 15h05
  2. typeError:list indice must be integers,not dict
    Par Mozard Yao dans le forum Odoo (ex-OpenERP)
    Réponses: 2
    Dernier message: 09/01/2014, 23h49
  3. TypeError: list indices must be integers, not list
    Par dergeekpanda dans le forum Général Python
    Réponses: 3
    Dernier message: 26/11/2013, 18h38
  4. Réponses: 2
    Dernier message: 03/12/2009, 18h35
  5. Réponses: 2
    Dernier message: 23/04/2009, 22h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo