मैं एक सूची समझ लिखने की कोशिश कर रहा हूं जहां यह ts सरणी के माध्यम से जाता है और फिर इसे पठनीय टाइमस्टैम्प में बदल देता है। हालाँकि dates सूची की समझ दोषपूर्ण है मैं इसे कैसे ठीक कर पाऊंगा और नीचे अपेक्षित आउटपुट प्राप्त कर पाऊंगा?

from datetime import datetime
import numpy as np 

ts = np.array([1628997394, 1628997444, 1628997602, 1629006977, 1629007021])
# if you encounter a "year is out of range" error the timestamp
# may be in milliseconds, try `ts /= 1000` in that case
dates=[x for x in ts if ts > 0 datetime.utcfromtimestamp(x).strftime('%Y-%m-%d %H:%M:%S')]

त्रुटि:

    dates=[x for x in ts if ts > 0 datetime.utcfromtimestamp(x).strftime('%Y-%m-%d %H:%M:%S')]
                                          ^
SyntaxError: invalid syntax

अपेक्षित उत्पादन:

[2021-08-15 03:16:34 , 2021-08-15 03:17:24, 2021-08-15 03:20:02 , 2021-08-15 05:56:17 , 2021-08-15 05:57:01]
1
georgehere 5 सितंबर 2021, 09:34

2 जवाब

सबसे बढ़िया उत्तर

इसे pandas के साथ अधिक कुशलता से किया जा सकता है:

>>> import pandas as pd
>>> ts = np.array([1628997394, 1628997444, 1628997602, 1629006977, 1629007021])
>>> pd.to_datetime(ts, unit='s', errors='coerce').dropna().astype(str).to_numpy()
array(['2021-08-15 03:16:34', '2021-08-15 03:17:24',
       '2021-08-15 03:20:02', '2021-08-15 05:56:17',
       '2021-08-15 05:57:01'], dtype=object)
>>> 
1
U12-Forward 5 सितंबर 2021, 06:40

आप ts पर x के रूप में पुनरावृति करते हैं अगर में चेक करने के लिए आपको x चेक करना चाहिए न कि ts को चेक करना चाहिए code> और के लिए और if के अंत में स्थिति की जांच करते समय आपको datetime.utcfromtimestamp(x).strftime('%Y-%m-%d % लिखना होगा H:%M:%S') उस पहली सूची में जिसे आप बनाना चाहते हैं।

ये कोशिश करें:

from datetime import datetime
import numpy as np 

ts = np.array([1628997394, 1628997444, 1628997602, 1629006977, 1629007021])

dates=[datetime.utcfromtimestamp(x).strftime('%Y-%m-%d %H:%M:%S') for x in ts if x>0]

आउटपुट:

['2021-08-15 03:16:34',
 '2021-08-15 03:17:24',
 '2021-08-15 03:20:02',
 '2021-08-15 05:56:17',
 '2021-08-15 05:57:01']
1
user1740577 5 सितंबर 2021, 06:41