簡體   English   中英

將JSON日期列表轉換為python日期格式

[英]Convert JSON date list to python date format

我有這個 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'

解決問題的方法之一是使用列表理解,例如:

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']

您可以使用datetime模塊中的datetime.fromtimestamp()將紀元時間轉換為日期時間,如下所示:

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)]

您可以像這樣使用 pd.to_datetime:

df['date']= pd.to_datetime(df['date'])

這些時間以紀元毫秒為單位。 您可以將它們轉換為datetime時間 object:

import datetime

x = datetime.datetime.fromtimestamp(int("1013230800000")/1000)
print(x.strftime("%F"))
>>> 2002-02-09

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM