我有這個 JSON 格式的生日串列,我想將其轉換為 Python 格式。轉換為 python 日期格式的最簡單方法是什么?
print(birthdate_json[:5])
給我以下結果:
['/Date(1013230800000)/', '/Date(1016600400000)/', '/Date(1010466000000)/', '/Date(1017205200000)/', '/Date(1020052800000)/']
雖然我希望輸入是:
'2002-02-09', '2002-03-20', '2002-01-08', '2002-03-27', '2002-04-29'
uj5u.com熱心網友回復:
您可以使用datetime.fromtimestamp()indatetime模塊將 epochtime 轉換為 datetime,如下所示:
from datetime import datetime
birthdate_json = [
'/Date(1013230800000)/',
'/Date(1016600400000)/',
'/Date(1010466000000)/',
'/Date(1017205200000)/',
'/Date(1020052800000)/'
]
birthdate = []
for i in range(len(birthdate_json)):
epoch_time = int(birthdate_json[i][6:-2])/1000
datetime_type_value = datetime.fromtimestamp(epoch_time)
# uncomment next line If you want str value of datetime such as ["2022-02-23", "2022-02-24" ...]
# datetime_type_value = datetime_type_value.strftime("%F")
birthdate.append(datetime_type_value)
print(birthdate)
# datetime type values will be printed:
# [datetime.datetime(2002, 2, 9, 14, 0), datetime.datetime(2002, 3, 20, 14, 0), datetime.datetime(2002, 1, 8, 14, 0), datetime.datetime(2002, 3, 27, 14, 0), datetime.datetime(2002, 4, 29, 13, 0)]
uj5u.com熱心網友回復:
解決問題的方法之一是使用串列理解,例如:
from datetime import datetime
import re
# Your code to extract data from JSON file and assign them to `birthdate_json` variable
[datetime.fromtimestamp(float((re.search("Date\((. )\)",x).group(1)))/1000).strftime("%Y-%m-%d") for x in birthdate_json]
這關于示例birthdate_json[:5]將導致:
['2002-02-09', '2002-03-20', '2002-01-08', '2002-03-27', '2002-04-29']
uj5u.com熱心網友回復:
這些時間以紀元毫秒為單位。您可以將它們轉換為datetime物件:
import datetime
x = datetime.datetime.fromtimestamp(int("1013230800000")/1000)
print(x.strftime("%F"))
>>> 2002-02-09
uj5u.com熱心網友回復:
你可以像這樣使用 pd.to_datetime :
df['date']= pd.to_datetime(df['date'])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/431159.html
