2015-07-31 5 views
1

Я пишу скрипт python, который попадает в API, а затем записывает различные данные в базу данных MySQL.TypeError: объект «datetime.datetime» не итерируется

Одно из полей, которые я пытаюсь написать, - это объект даты, но я продолжаю работать в ошибке «TypeError:» datetime.datetime «is is iterable» и, похоже, не может пройти мимо него. Я убежден, что это действительно просто, но я не могу понять, что.

Во-первых, я вызываю API, чтобы получить объект json с несколькими датами и метриками в них. Затем я просматриваю даты и пытаюсь записать их в БД.

for day in results: 

    mydate = datetime.datetime.strptime(day['date'], '%Y-%m-%d') 

    print mydate 

    date_query = "INSERT INTO sendgrid_stats (date) VALUES (%s)" 

    cursor.execute(date_query, mydate) 
    connection.commit() 

Если напечатать дату, которая попыталась вставить, это выглядит как «2015-07-26 00:00:00» (без кавычек).

Кто-нибудь знает, что я делаю неправильно? Мое лицо болит от удара головой в клавиатуру.

+0

Что такое трассировка? на какой строке находится ошибка? –

+0

Traceback (самый последний вызов последнего): Файл "getdailystats.py", строка 25, в cursor.execute (date_query, MyDate) Файл «/usr/local/lib/python2.7/site-packages/MySQLdb /cursors.py ", строка 187, в исполнении query = query% tuple ([db.literal (item) для элемента в args]) ТипError: объект 'datetime.datetime' не является итерабельным – PJATX

ответ

5

Вам необходимо передать параметры запроса как итерабельные. Сделайте его кортежем, например:

cursor.execute(date_query, (mydate,)) 
+0

Вот и все! Благодарю. – PJATX

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