Входные данные поступают из файла CSV, в котором даты форматируются в AM/PM, а затем библиотека Pandas используется для экспорта csv в таблицу базы данных sqlite.Преобразование 12-часового формата в 24 часа Python
Есть ли какие-либо элегантные решения или встроенная функция для python 2.7 или 3 для преобразования этих 12-часовых дат в формат 24 часа, желательно, прежде чем они будут записаны в базу данных? Мне нужно сравнить даты, которые будут импортированы в базу данных.
Следующий код используется:
import pandas as pd
import datetime as dt
from sqlite3 import connect
from glob import iglob
from os.path import splitext, basename
dbName = 'logs'
logsDir = 'event_logs'
def csvToDb(db, filename):
conn = connect(db)
df = pd.read_csv(filename,encoding='utf-8')
df.to_sql(splitext(basename(filename))[0], conn)
conn.close()
def csvLogsToDb(directory):
for filename in iglob(directory + '/*.csv'):
print('WRITING TO DB | ' + filename)
csvToDb(dbName, filename)
print("DONE")
if __name__ == "__main__":
csvLogsToDb(logsDir)
я удалил большую часть данных и хранится наиболее актуальной, но в двух словах, это мой входной ток и нужен выход
ВХОД CSV DATA:
Level,DateTime
Information,2017/01/06 9:06:02 AM
Information,2017/01/06 9:02:44 AM
Information,2017/01/06 8:56:48 PM
CURRENT OUTPUT
COL1
Information
Information
Information
COL2
2017/01/06 9:06:02 AM
2017/01/06 9:02:44 AM
2017/01/06 8:56:48 PM
ЗАПЛАНИРОВАННЫЕ
COL1
Information
Information
Information
COL2
2017-01-06 09:06:02
2017-01-06 09:02:44
2017-01-06 20:56:48
Возможный дубликат [Как я могу указать период (AM/PM) с datetime.strptime?] (Http://stackoverflow.com/questions/1759455/how-can-i-account-for-period-am- pm-with-datetime-strptime) –
Так как AM или PM указаны в эти даты? Речь идет только о настройке парсера для дат, чтобы прочитать эту информацию. –
@MartijnPieters: Даты CSV даны в следующем формате: '2017/01/05 7:43:25 PM'. Извините, если этот вопрос глупо. Я использовал Python в течение некоторого времени, но не делаю этого часто, поскольку я в основном использую C#. – Elmar