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 :

AttributeError: 'str' object has no attribute 'append' [Python 3.X]


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ghana

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut AttributeError: 'str' object has no attribute 'append'
    Bonjour la Famille,
    je suis nouveau en python, je me suis entraine sur le webscrapping et ci dessous mon code.
    je trouve une erreur que je ne peux resoudre.
    pourvez vous m'aider s'il vous plait?

    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    # import library
    from requests import get
    from bs4 import BeautifulSoup as bs
    import pandas as pd
    from time import time
    from time import sleep
    from random import randint
    from IPython.display import clear_output
    from warnings import warn
    import re
     
    # declaration variables
    SumNames = ["camarasama", "mefisto225", "Saber+Milena"]
    SummonerName =[]
    TotalRank = []
    Tier_Rank = []
    TierInfoLP = []
    wins = []
    losses = []
    winratio = []
    x = "+"
     
    # creation of the loops
    start_time = time()
    requests = 0
     
    # requests for the page
    for name in SumNames:
        response = get('http://euw.op.gg/summoner/userName='+ name)
     
        # break between requests
        sleep(randint(1,2))
     
        # information about the requests
        requests += 1
        elapsed_time = time() - start_time
        print('Request: {}; Frequency: {} requests/s'.format(requests, requests/elapsed_time))
        clear_output(wait = True)
     
        # if response != 200
        if response.status_code != 200:
            warn('Request: {}; Status code: {}'.format(requests, response.status_code))
            break
     
        # extract the page
        page_html = bs(response.text, 'html.parser')
     
        # select the summoner container information
        summoners_infos = page_html.find_all('div', class_="tabItem")
        SumName = name
        if x in SumName:
            SumName = SumName.replace(x, " ")
        else:
            continue
     
        SumName.append(SummonerName)
     
            # Retreiving Summoner information    
        #create loop to retreive information
        for summoner_info in summoners_infos:
     
            #extract the League Point
            TierInfoLPs = page_html.find('span', class_="LeaguePoints").text
            TierInfoLPs = re.sub('\s+', '', TierInfoLP)
            TierInfoLPs = TierInfoLPs.replace("LP", "")
            TierInfoLPs.append(TierInfoLP)
     
            # extract the Total Rank
            TotalRanks = page_html.find('span', class_="ranking").text
            TotalRanks.append(TotalRank)
     
            # extract the Tier Rank
            Tier_Ranks = page_html.find('span', class_="tierRank").text
            Tier_Ranks.append(Tier_Rank)
     
            # extract the wins
            win = page_html.find('span', class_="wins").text
            win = win.replace("W", "")
            win.append(wins)
     
            # extract the losses
            losse = page_html.find('span', class_="losses").text
            losse = losse.replace("L", "")
            losse.append(losses)
     
            # extract the winratio
            winratios = page_html.find('span', class_="winratio").text
            winratios = winratio.replace("Win Ratio", "")
            winratios.append(winratio)
     
    #display Data
    player_data = pd.DataFrame({
        'Nom Invocateur': [SummonerName],
        'Rank Total': [TotalRank],
        'Helo': [Tier_Rank],
        'Nbre de Points': [TierInfoLP],
        'Nbre Victoire': [wins],
        'Nbre Defaite': [losses],
        'Ratio Victoire': [winratio]
    })
    print(player_data)
    Erreur:
    ---------------------------------------------------------------------------
    AttributeError                            Traceback (most recent call last)
    <ipython-input-40-f6628d964472> in <module>()
         28         continue
         29 
    ---> 30     SumName.append(SummonerName)
         31 
         32         # Retreiving Summoner information
    
    AttributeError: 'str' object has no attribute 'append'
    toutes mes methodes append on la meme erreur

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Ne serait-ce pas plutôt ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SummonerName.append(SumName)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ghana

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut
    Merci,
    vraiment une erreur de debutant, je ferai de mon mieux pour eviter ce genre d'erreur

    Citation Envoyé par Jerome Briot Voir le message
    Ne serait-ce pas plutôt ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SummonerName.append(SumName)

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

Discussions similaires

  1. [V9] Erreur Odoo: AttributeError: 'str' object has no attribute 'iteritems'
    Par razria95 dans le forum Odoo (ex-OpenERP)
    Réponses: 0
    Dernier message: 23/03/2017, 17h08
  2. Selenium - AttributeError: 'module' object has no attribute
    Par bender1979 dans le forum Général Python
    Réponses: 4
    Dernier message: 09/11/2010, 22h03
  3. Ftp : 'str' object has no attribute 'read'
    Par noquioz dans le forum Réseau/Web
    Réponses: 3
    Dernier message: 02/01/2009, 15h46
  4. Probleme : AttributeError: 'tuple' object has no attribute
    Par MrGecko dans le forum Général Python
    Réponses: 1
    Dernier message: 27/05/2007, 09h59
  5. Réponses: 2
    Dernier message: 26/05/2006, 14h48

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