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 avec strptime: "does not match format"


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut Problème avec strptime: "does not match format"
    Bonjour, j'utilise time.strptime sous Python 2.6.2 et j'ai l'erreur (curieuse) suivante :
    ValueError: time data '05:55, 8 July 2009' does not match format '%H:%M, %d %B %Y'
    Le code correspondant fonctionnait parfaitement jusqu'à ce qu'il soit changé de plate-forme (et je n'arrive pas à savoir précisément ce qui a changé entre les deux plate-formes). Je sais que j'ai déjà eu une erreur similaire avec ce code, mais je ne me souviens absolument plus comment j'ai résolu le problème...

    Le code en lui-même n'apprend rien, mais le voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sigTime = time.strptime("%s:%s, %s %s %s" % match[:5] ,"%H:%M, %d %B %Y")
    Je vous remercie par avance si vous avez des suggestions.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 119
    Par défaut
    Pas facile à trouver, puisque chez moi ça marche. Des pistes:
    %B, c'est le mois en locale - donc sur une plateforme française il devrait attendre Juillet.
    %H attend peut etre un nombre à deux chiffres? (08 au lieu de 8)

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    Il faudrait tester ce qu’il se passe avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sigTime = time.strptime(05:55, 8 Juillet 2009'  ,"%H:%M, %d %B %Y")

  4. #4
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    time.strptime('05:55, 8 July 2009', "%H:%M, %d %B %Y")
    Ne donne pas d'erreur en console.
    Donc c'est pas un problème de locale, ni de format proprement dit.

    La chaîne d'où provient la date est à l'origine en UTF-8, j'ai longtemps cru que le probème venait de là, mais je l'ai passée en ASCII et ça foire toujours. Vraiment, je ne comprends pas.

  5. #5
    Membre éclairé Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Par défaut
    Salut,

    Juste pour info, j'obtiens la même erreur si je mets le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    time.strptime("'05:55, 8 July 2009'", "%H:%M, %d %B %Y")
    Peut être un problème avec des guillemets ou des quotes en trop ?

  6. #6
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par ctiti60 Voir le message
    Peut être un problème avec des guillemets ou des quotes en trop ?
    Si je prends ton code, je récupère mes deux paires de guillemets dans l'erreur, donc je ne pense pas. D'autre part, je répète que mon code fonctionnait sur une autre plate-forme, donc j'ai peur que le problème vienne de l'environnement.

  7. #7
    Membre éclairé Avatar de ctiti60
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 75
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >>> time.strptime("'05:55, 8 July 2009'", "%H:%M, %d %B %Y")
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "...\python\Lib\_strptime.py", line 310, in strptime
        (data_string, format))
    ValueError: time data did not match format:  data='05:55, 8 July 2009'  fmt=%H:%M, %d %B %Y
    >>>
    Je n'ai pas les guillements dans l'erreur. C'était juste une piste du pourquoi on peut arriver à cette erreur.

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 418
    Par défaut
    %d Day of the month as a decimal number [01,31].
    Je parie que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    time.strptime("'05:55, 08 July 2009'", "%H:%M, %d %B %Y")
    va marcher

  9. #9
    Membre Expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Par défaut
    Citation Envoyé par eyquem Voir le message
    Je parie que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    time.strptime("'05:55, 08 July 2009'", "%H:%M, %d %B %Y")
    va marcher
    Ca marche déjà sans le zéro, mais uniquement en console.

    D'autre part, je ne peux pas modifier la chaîne d'entrée, il faudrait que je modifie la chaîne de formatage, mais il n'y a apparemment pas de format pour [1, 31]...

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

Discussions similaires

  1. ORA-01861: literal does not match format string
    Par unix27 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 07/01/2013, 19h02
  2. ORA-01861: literal does not match format string
    Par Bat91 dans le forum PL/SQL
    Réponses: 9
    Dernier message: 31/08/2010, 11h30
  3. ORA-01861: literal does not match format string
    Par labolabs dans le forum PL/SQL
    Réponses: 3
    Dernier message: 08/02/2010, 10h31
  4. [Oracle] ORA-01861: literal does not match format string
    Par habasque dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2008, 21h57
  5. Réponses: 11
    Dernier message: 08/10/2004, 15h12

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