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 :

tuple is not callable


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur industriel Biochimie
    Inscrit en
    Mars 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur industriel Biochimie

    Informations forums :
    Inscription : Mars 2015
    Messages : 30
    Points : 16
    Points
    16
    Par défaut tuple is not callable
    Bonjour à tous et toutes,

    Cela fait deux semaines que je code sur python et il arrive parfois que je bloque sur pas grand chose mais qui stoppe toute progression. Je me tourne vers vous parce que cette fois-ci, impossible de résoudre le problème.

    Voila, je fais un programme de geoloc, je dispose des codes pays et sous région (Je joins un fichier Excel). Et je souhaite convertir ces codes en nom complet et compréhensible par tous.

    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
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    """ Import """
     
    import pandas as pd
    import csv
    import requests
    import numpy as np
    import xlrd
    import sys
    import pygeoip
    import pycountry
     
    gi = pygeoip.GeoIP("/home/vagrant/python/GeoIP.dat")
    gic = pygeoip.GeoIP("/home/vagrant/python/GeoLiteCity.dat")
     
    """ Function """
     
    def IsoCountry(df):
        countryiso_list = pd.Series()
        cityiso_list = pd.Series()
        j=0
     
        for i in df.Country:
            if i == "/":
                countryiso_list.set_value = (j,"/")
            else :
                pays = pycountry.countries.get(alpha2=i)
                pays1=pays.name
                countryiso_list.set_value(j,pays1)
     
            j = j+1
     
        j=0
     
        for i in df.Region:
            if i == "/":
                cityiso_list.set_value = (j,"/")
            else:
                ville = pycountry.subdivisions.get(code=str(df.Country[j])+"-"+i)
                ville1=ville.name
                cityiso_list.set_value(j,ville1)
     
            if j % 10 == 0:
                print j,
                sys.stdout.flush()
     
            j = j+1
     
        df["Country_ISO"] = countryiso_list
        df["City_ISO"] = cityiso_list
     
     
    """ Script """
     
     
    df=pd.read_excel(sys.argv[1],header=None, encoding='utf-8')
    df.rename(columns={ 0 : 'Country', 1 : 'Region'}, inplace=True)
     
     
    IsoCountry(df)
     
    """ Sauvegarde """
    ==> Bien sur le code n'est probablement pas parfait.

    Mais ce qui m'interresse surtout c'est que quand je le run, j'ai ce message :
    "TypeError: 'tuple' object is not callable"
    qui arrive à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    countryiso_list.set_value(j,pays1)
    J'ai essayé tout, je suis dessus depuis hier dans l'après midi.....

    Si quelqu'un à la solution, une aide, une proposition, je suis preneur.

    Merci à vous

    ps: Je suis sur python 2.7
    Fichiers attachés Fichiers attachés

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur industriel Biochimie
    Inscrit en
    Mars 2015
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur industriel Biochimie

    Informations forums :
    Inscription : Mars 2015
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Je m'excuse pour le flood....

    Dans certaines lignes un = apparait....

    ce qui transforme une premiere fois ma variable en Tuple et qui fait tout foirer.

    le vrai code est Comment perdre des heures pour une connerie

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par gerday.m Voir le message
    Mais ce qui m'interresse surtout c'est que quand je le run, j'ai ce message :
    "TypeError: 'tuple' object is not callable"
    qui arrive à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    countryiso_list.set_value(j,pays1)
    J'ai essayé tout, je suis dessus depuis hier dans l'après midi.....

    Si quelqu'un à la solution, une aide, une proposition, je suis preneur.
    Bonjour
    Il te faut vérifier 2 éléments
    1. le type de countryiso_list (surtout qu'il provient de pd.Series()) et donc vérifier que cet élément est bien un objet qui peut appeler la méthode set_value()
    2. le type de pays1 (qui provient de pays.name et pays qui vient de pycountry.countries.get(alpha2=i)) et donc vérifier que cet élément est bien le bon paramètre attendu par set-value()


    Pour vérifier le type d'un truc, te suffit d'afficher type(truc)...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/04/2011, 09h20
  2. object is not callable
    Par rezguiinfo dans le forum Général Python
    Réponses: 6
    Dernier message: 30/01/2011, 13h43
  3. "'int' object is not callable"
    Par dingoth dans le forum Général Python
    Réponses: 2
    Dernier message: 22/12/2010, 17h38
  4. TypeError: 'file' object is not callable
    Par MariemEA dans le forum Général Python
    Réponses: 7
    Dernier message: 09/07/2010, 21h57
  5. typeerror "int" not callable
    Par luckylucky dans le forum Général Python
    Réponses: 2
    Dernier message: 06/05/2010, 22h28

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