ValueError: non converti les données restent: 02:05
J'ai quelques dates dans un des fichiers json, et je suis à la recherche pour ceux qui correspond à la date d'aujourd'hui :
import os
import time
from datetime import datetime
from pytz import timezone
input_file = file(FILE, "r")
j = json.loads(input_file.read().decode("utf-8-sig"))
os.environ['TZ'] = 'CET'
for item in j:
lt = time.strftime('%A %d %B')
st = item['start']
st = datetime.strptime(st, '%A %d %B')
if st == lt :
item['start'] = datetime.strptime(st,'%H:%M')
J'ai eu une erreur comme ceci :
File "/home/--/--/--/app/route.py", line 35, in file.py
st = datetime.strptime(st, '%A %d %B')
File "/usr/lib/python2.7/_strptime.py", line 328, in _strptime
data_string[found.end():])
ValueError: unconverted data remains: 02:05
Avez-vous des suggestions ?
OriginalL'auteur 4m1nh4j1 | 2013-12-02
Vous devez vous connecter pour publier un commentaire.
La valeur de
st
àst = datetime.strptime(st, '%A %d %B')
ligne quelque chose comme01 01 2013 02:05
et lastrptime
peut pas analyser cela. En effet, vous obtenez une heure en plus de la date... Vous avez besoin d'ajouter%H:%M
à votre strptime.J'ai eu le même message d'erreur quand j'avais échangé le mois et la date des variables par accident. Il montrait
unconverted data remains: 3
. Je pensais que 3 est une unité, mais c'était tout simplement la partie de la chaîne qui reste après l'analyseur avait fini.OriginalL'auteur Maxime Lorant
Vous devez analyser tous de la chaîne d'entrée, vous ne pouvez pas ignorer les parties.
Ici, nous comparons la date à la date d'aujourd'hui en utilisant plus de
datetime
objets au lieu d'essayer d'utiliser des chaînes.L'alternative est de passer uniquement dans partie de la
item['start']
chaîne (la séparation juste le temps), mais il n'y a vraiment aucun point ici, pas quand vous pouvez simplement analyser le tout dans une première étape.OriginalL'auteur Martijn Pieters
Eh bien, c'était très simple. J'ai été absent le format de la date dans le fichier json, donc je devrais écrire :
parce que dans le fichier json à la date était comme :
:
. Vous êtes également absent dehors sur la richesse de ladatetime
objet que vous avez analysé en essayant de le comparer à cordes.Pouvez-vous m'indiquer comment puis-je utiliser la richesse de datetime dans ce contexte? Merci quand même .
Voir ma réponse, où j'utilise
st.date() == date.today()
pour tester si la valeur analysée est aujourd'hui à la place.OriginalL'auteur 4m1nh4j1
Meilleure réponse est d'utiliser le
from dateutil import parser
.utilisation:
OriginalL'auteur Anjaneyulu Batta