2015-09-21 3 views
2

Я пытаюсь преобразовать дату и время, но я не могу понять, как заставить мою строку быть целым числом. Я пытался добавить в [0] после (запись [ "created_at"], но не повезлоTypeError: строковые индексы должны быть целыми числами datetime

Код:

$ для элемента данных:

`$` convertedTweet = {} 

for entry in item: 
    convertedTweet["created_at"] = item["created_at"] 
    fmt = '%Y-%m-%dT%H:%M:%SZ' 
    temp = datetime.strptime(entry['created_at'],'%a %b %d %H:%M:%S +0000 %Y').replace(tzinfo=pytz.UTC) 
    print temp.strftime(fmt) 

Ошибка:

temp = datetime.strptime(entry['created_at'],'%a %b %d %H:%M:%S +0000 %Y').replace(tzinfo=pytz.UTC) 
TypeError: string indices must be integers 
+0

Что такое 'item'? –

+0

'Я не могу понять, как заставить мою строку быть целым числом', что о' int (string) '? – KurzedMetal

+0

вещь преобразуется чириканье, обновленный код – user6754289

ответ

3

Похоже, что item - это словарь (так как вы делаете t его - item["created_at"], и это не ошибка для вас).

Если да, то когда вы Переберите словаря, как -

for entry in item: 

entry представляет ключи в словаре, который, скорее всего, являются строками. Поэтому, когда вы пытаетесь сделать это - entry['created_at'] - это ошибка, поскольку вы пытаетесь использовать строковые индексы для строк, что невозможно.

Не похоже, что вам нужна петля вообще, вы можете напрямую получить доступ - item["created_at"] - чтобы получить дату-время. Пример:

convertedTweet["created_at"] = item["created_at"] 
temp = datetime.strptime(item["created_at"],'%a %b %d %H:%M:%S +0000 %Y').replace(tzinfo=pytz.UTC) 
print temp.strftime('%Y-%m-%dT%H:%M:%SZ') 
+0

Это сработало, спасибо! – user6754289

+0

Рад, что это сработало для вас. Если бы ответ был полезен, я также хотел бы попросить вас принять ответ (нажав галочку в левой части ответа), это было бы полезно для сообщества. –

+0

Я думаю, что сделал. Это был мой первый пост. Еще раз спасибо за помощь – user6754289

Смежные вопросы