ValueError: данные времени '(datetime.datetime (2018, 8, 21, 14, 14, 18, 233000),) "не соответствуют формату"% Y-% m-% d " - PullRequest
1 голос
/ 01 октября 2019

Я пытаюсь запрограммировать скрипт, который извлекает данные из SQL и помещает их в Quickbase. Мне нужны только год, месяц и день из моих строк

вот вывод результатов печати

(datetime.datetime(2018, 11, 30, 19, 52, 32, 927000),)
(None,)
(datetime.datetime(2018, 10, 17, 21, 39, 37, 163000),)
(datetime.datetime(2016, 12, 30, 20, 14, 23, 133000),)
(datetime.datetime(2018, 10, 17, 21, 31, 21, 853000),)
(datetime.datetime(2017, 2, 27, 21, 26, 51, 307000),)
(datetime.datetime(2018, 12, 20, 20, 35, 29, 997000),)
(datetime.datetime(2019, 9, 5, 15, 29, 22, 967000),)
(datetime.datetime(2018, 8, 13, 21, 57, 3, 307000),)
(datetime.datetime(2018, 10, 17, 21, 28, 23, 60000),)

Вот что у меня есть

for result in cursor.fetchall():
    print(result)
    result = datetime.strptime(str(result), '%Y-%m-%d')



    #client.edit_record(rid = result , fields = {'99' : '1' }, database=CONTACTS_TABLE)
cursor.commit()
cursor.close()

вот моя ошибка

ValueError: time data '(datetime.datetime(2018, 8, 21, 14, 14, 18, 233000),)' does not match format '%Y-%m-%d'

Любой вклад приветствуется!

1 Ответ

1 голос
/ 01 октября 2019

Я думаю, что у вас проблема в том, что вы пытаетесь преобразовать кортеж в str, это не проблема, но это вам не помогает.

Я рекомендую сделать что-то подобное, если вы хотитесохранить str:

for result in cursor.fetchall():
    print(result)
    result = '%d-%d-%d' % (result[0].year, result[0].month, result[0].day)

или, если вы хотите сохранить объект даты, просто создайте новый datetime.date с этими значениями

...