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 :

Problème line.strip() syntax error [Python 3.X]


Sujet :

Python

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut Problème line.strip() syntax error
    Bonjour à tous,

    Je débute un peu en python pour me former en big data. L'un des premiers exercices que je dois faire est de récupérer le flux de twitts sur twitter.

    On m'a donné un script tout fait pour démarrer. Malheureusement j'obtiens une erreur de syntaxe, j'ai pensé à un soucis de version de python sauf que j'ai l'impression d'être à jour.

    Voici le message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    File "twitterstream.py", line 58
        print line.strip()
                 ^
    SyntaxError: invalid syntax


    et le code de mon fichier python

    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
     
    import oauth2 as oauth
    import urllib2 as urllib
     
    # See assignment1.html instructions or README for how to get these credentials
     
    api_key = "YKJbtojN6RAisbjzD3z5I4xzo"
    api_secret = "uC5lDyedmTFrntJPzXVTnI7ZtB9Edj5DfgTQVphz6356sGfhIO"
    access_token_key = "3381044350-Nmxkh9jVPcvBjGHjB1jiK8jl0tgHUI54re4TBFZ"
    access_token_secret = "ZgwZE95NCCuesG8DlklWGyXmUlE4T0CGy8cp1YLjgNUwm"
     
    _debug = 0
     
    oauth_token    = oauth.Token(key=access_token_key, secret=access_token_secret)
    oauth_consumer = oauth.Consumer(key=api_key, secret=api_secret)
     
    signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1()
     
    http_method = "GET"
     
     
    http_handler  = urllib.HTTPHandler(debuglevel=_debug)
    https_handler = urllib.HTTPSHandler(debuglevel=_debug)
     
    '''
    Construct, sign, and open a twitter request
    using the hard-coded credentials above.
    '''
    def twitterreq(url, method, parameters):
      req = oauth.Request.from_consumer_and_token(oauth_consumer,
                                                 token=oauth_token,
                                                 http_method=http_method,
                                                 http_url=url, 
                                                 parameters=parameters)
     
      req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)
     
      headers = req.to_header()
     
      if http_method == "POST":
        encoded_post_data = req.to_postdata()
      else:
        encoded_post_data = None
        url = req.to_url()
     
      opener = urllib.OpenerDirector()
      opener.add_handler(http_handler)
      opener.add_handler(https_handler)
     
      response = opener.open(url, encoded_post_data)
     
      return response
     
    def fetchsamples():
      url = "https://stream.twitter.com/1.1/statuses/sample.json"
      parameters = []
      response = twitterreq(url, "GET", parameters)
      for line in response:
        print line.strip()
     
    if __name__ == '__main__':
    fetchsamples()

    Je ne sais pas d'où vient le problème et je viens chercher de l'aide . Merci d'avance !!

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 712
    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 712
    Par défaut
    Salut,

    Citation Envoyé par billythekid945 Voir le message
    On m'a donné un script tout fait pour démarrer. Malheureusement j'obtiens une erreur de syntaxe, j'ai pensé à un soucis de version de python sauf que j'ai l'impression d'être à jour.
    C'était bien pensé... sauf que cette erreur pointe le print et non line.strip().
    Et çà dit que le script a été écrit pour une version 2 et non pour une version "à jour".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut re
    Bonjour à tous,

    Merci beaucoup pour la réponse !!!

    il me manquait effectivement des parenthèses pour que cela soit compatible avec la version à jour de python. Mais du coup, j'ai une autre erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Traceback (most recent call last):
      File "twitterstream.py", line 2, in <module>
        import urllib2 as urllib
    ModuleNotFoundError: No module named 'urllib2'
    j'ai tenté un 2to3 MonFichier.py mais il m'a affiché ça

    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
     
     
    RefactoringTool: Skipping optional fixer: buffer
    RefactoringTool: Skipping optional fixer: idioms
    RefactoringTool: Skipping optional fixer: set_literal
    RefactoringTool: Skipping optional fixer: ws_comma
    RefactoringTool: Refactored twitterstream.py
    --- twitterstream.py	(original)
    +++ twitterstream.py	(refactored)
    @@ -55,7 +55,7 @@
       parameters = []
       response = twitterreq(url, "GET", parameters)
       for line in response:
    -    print (line.strip())
    +    print((line.strip()))
     
     if __name__ == '__main__':
     	fetchsamples()
    RefactoringTool: Files that need to be modified:
    RefactoringTool: twitterstream.py
    RefactoringTool: Warnings/messages while refactoring:
    RefactoringTool: ### In file twitterstream.py ###
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules
    RefactoringTool: Line 2: could not convert: import urllib2 as urllib
    RefactoringTool: This module is now multiple modules

    et cela ne marche toujours pas du coup... Avez-vous des idées? :/ Je sais que dans la version 3 de python le urllib a été séparé en plusieurs modules... mais comment l'installer correctement?

    j'ai tenté aussi un

    j'obtiens alors l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Collecting urllib2
      Could not find a version that satisfies the requirement urllib2 (from versions: )
    No matching distribution found for urllib2


    Merci d'avance !

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 712
    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 712
    Par défaut
    Citation Envoyé par billythekid945 Voir le message
    et cela ne marche toujours pas du coup... Avez-vous des idées? :/ Je sais que dans la version 3 de python le urllib a été séparé en plusieurs modules... mais comment l'installer correctement?
    Si vous voulez faire fonctionner ce code, le plus simple (pour vous) sera d'installer Python 2.7.
    Pour le reste, faire fonctionner ce code sous Python3, c'est du temps que je n'ai pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Ceci ?

    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
    import oauth2 as oauth
    import urllib.request as urllib
     
    # See assignment1.html instructions or README for how to get these credentials
     
    api_key = "YKJbtojN6RAisbjzD3z5I4xzo"
    api_secret = "uC5lDyedmTFrntJPzXVTnI7ZtB9Edj5DfgTQVphz6356sGfhIO"
    access_token_key = "3381044350-Nmxkh9jVPcvBjGHjB1jiK8jl0tgHUI54re4TBFZ"
    access_token_secret = "ZgwZE95NCCuesG8DlklWGyXmUlE4T0CGy8cp1YLjgNUwm"
     
    _debug = 0
     
    oauth_token    = oauth.Token(key=access_token_key, secret=access_token_secret)
    oauth_consumer = oauth.Consumer(key=api_key, secret=api_secret)
     
    signature_method_hmac_sha1 = oauth.SignatureMethod_HMAC_SHA1()
     
    http_method = "GET"
     
     
    http_handler  = urllib.HTTPHandler(debuglevel=_debug)
    https_handler = urllib.HTTPSHandler(debuglevel=_debug)
     
    '''
    Construct, sign, and open a twitter request
    using the hard-coded credentials above.
    '''
    def twitterreq(url, method, parameters):
        req = oauth.Request.from_consumer_and_token(oauth_consumer,\
        token=oauth_token,http_method=http_method,http_url=url,parameters=parameters)
     
        req.sign_request(signature_method_hmac_sha1, oauth_consumer, oauth_token)
     
        headers = req.to_header()
        if http_method == "POST":
            encoded_post_data = req.to_postdata()
        else:
            encoded_post_data = None
     
        url = req.to_url()
        opener = urllib.OpenerDirector()
        opener.add_handler(http_handler)
        opener.add_handler(https_handler)
     
        response = opener.open(url, encoded_post_data)
     
        return response
     
    def fetchsamples():
        url = "https://stream.twitter.com/1.1/statuses/sample.json"
        parameters = []
        response = twitterreq(url, "GET", parameters)
        for line in response:
            print (line.strip())
     
    if __name__ == '__main__':
        fetchsamples()

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2016
    Messages : 6
    Par défaut Super
    Génial !!! ça marche merci

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

Discussions similaires

  1. Problème Module Ocaml syntax error
    Par momo_m dans le forum Caml
    Réponses: 1
    Dernier message: 25/11/2013, 18h11
  2. ./CreateCert.sh: line 221: syntax error: unexpected end of file
    Par momoski dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 24/04/2013, 21h13
  3. Réponses: 1
    Dernier message: 12/12/2007, 14h03
  4. syntax error, unexpected T_ELSE on line 136
    Par asfrat dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 22/09/2006, 08h15
  5. [Configuration] Problème après l'installation (Parse error: syntax error,..)
    Par beur dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 21/03/2006, 14h08

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