Pyton konvertera string till datetime

Permalänk
Medlem

Pyton konvertera string till datetime

Go söndag!

Jag sitter och försöker konvertera en lista med strängar av följande art:
"Mon Mar 4 00:02:01 CET 2019"

Målet är att få ut enbart tidpunkt (HH:MM:SS) för att konvertera till datetime så att det går att använda med matplotlib. Problemet jag har med nedanstående kod är att mina regex-fynd inte kommer ut som en sträng som går att behandla. Får för närvarande följande fel:

ValueError: time data "['00:00:01']" does not match format '%H:%M:%S'

Jag har provat övriga re-verktyg, men något verkar vara fundamentalt fel.

datenew = [re.findall('\d{2}:\d{2}:\d{2}', item) for item in date1] date_time1 = [datetime.datetime.strptime(str(item), "%H:%M:%S") for item in datenew] print(date_time1[1])

Tack på förhand!

Visa signatur

+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++

"Real stupidity beats artificial intelligence every time." - Terry Pratchett, Hogfather

Permalänk
Permalänk
Hedersmedlem

Felet i din kod är att du får en lista med listor:

>>> [re.findall('\d{2}:\d{2}:\d{2}', item) for item in data] [['00:02:01'], ['21:33:20']]

Om strängarna alltid kommer matcha regexet så fungerar

datenew = [re.search('(\d{2}:\d{2}:\d{2})', item).group(1) for item in data]

Eftersom typen är datetime så får du dock galna datum, i de fall de används någonstans:

>>> date_time1 [datetime.datetime(1900, 1, 1, 0, 2, 1), datetime.datetime(1900, 1, 1, 21, 33, 20)]

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Medlem

@Thomas: Du har såklart rätt, men jag fick det inte att fungera med serach/match heller när jag prövade själv. Jag hittade däremot ett inlägg på nätet som använde ett inbyggt verktyg i matplotlib, "dates".

import matplotlib.dates as mdates myFmt = mdates.DateFormatter('%H:%M') plt.gca().xaxis.set_major_formatter(myFmt)

Visa signatur

+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++

"Real stupidity beats artificial intelligence every time." - Terry Pratchett, Hogfather