J'ai un dictionnaire où les clés sont datetime.datetime & les valeurs sont des listes de tweets. Donc, il ressemble à ceci:Filtrer la date dans les objets datetime par mois
{datetime.datetime(2017, 9, 30, 19, 55, 20) : ['this is some tweet text'],
datetime.datetime(2017, 9, 30, 19, 55, 20) : ['this is another tweet']...
J'essaie d'obtenir le nombre de tweets envoyés chaque mois de l'année. Jusqu'à présent, j'ai ...
startDate = 10
endDate= 11
start = True
while start:
for k,v in tweetDict.items():
endDate-=1
startDate-=1
datetimeStart = datetime(2017, startDate, 1)
datetimeEnd = datetime(2017,endDate, 1)
print(datetimeStart, datetimeEnd)
if datetimeStart < k < datetimeEnd:
print(v)
if endDate == 2:
start = False
break
qui imprime seulement (je suis au courant de la déclaration d'impression) ...
2017-08-01 00:00:00 2017-09-01 00:00:00
2017-07-01 00:00:00 2017-08-01 00:00:00
2017-06-01 00:00:00 2017-07-01 00:00:00
2017-05-01 00:00:00 2017-06-01 00:00:00
2017-04-01 00:00:00 2017-05-01 00:00:00
2017-03-01 00:00:00 2017-04-01 00:00:00
2017-02-01 00:00:00 2017-03-01 00:00:00
2017-01-01 00:00:00 2017-02-01 00:00:00
et non les tweets eux-mêmes. Je m'attendais à quelque chose comme ...
2017-08-01 00:00:00 2017-09-01 00:00:00
['heres a tweet']
['theres a tweet']
2017-07-01 00:00:00 2017-08-01 00:00:00
['there only 1 tweet for this month']....
Je suis coincé, comment puis-je y parvenir?
Je vois à quel point groupby serait plus facile dans ce cas mais je continue à obtenir un 'SyntaxError' dans la première ligne de la boucle for, juste sous le '(k, v)'. J'utilise python 3. Cela ferait-il une différence puisque votre code ressemble à python 2? – e1v1s
Ah oui, excuses, @ e1v1s change tout 'print x' en' print (x) '(Python 3 n'est pas installé sur cette machine). – Bahrom
Oui, j'ai déjà ajouté les parenthèses autour des instructions d'impression. le 'Syntax Error' est mentionné dans le commentaire ci-dessus :) – e1v1s