Reformat Date field

Viewed 28

I have a JSON which is a list of dictionaries and I want to modify the value of the Key dateAndTime. Imagine I have the next JSON:

[
     {
        "dateAndTime": "Mar  3, 2019 11:01:28", 
        "frameNumber": "1"
     },
     {
        "dateAndTime": "Apr  25, 2021 15:01:28", 
        "frameNumber": "2"
     },
     {   
        "dateAndTime": "Sep  21, 2021 11:21:38", 
        "frameNumber": "3"
     },
     {   
        "dateAndTime": "Dec  1, 2023 11:21:38", 
        "frameNumber": "4"
     }
]

Expected output:

[
     {
        "dateAndTime": "03/03/2019", 
        "frameNumber": "1"
     },
     {
        "dateAndTime": "25/04/2021", 
        "frameNumber": "2"
     },
     {   
        "dateAndTime": "21/09/2021", 
        "frameNumber": "3"
     },
     {   
        "dateAndTime": "01/12/2023", 
        "frameNumber": "4"
     }
]

I've made some attempts using datetime and strftime modules.

1 Answers

Use datetime module. datetime.datetime.strptime to convert to datetime object and datetime.datetime.strftime to convert to required string format

Ex:

data = [{'dateAndTime': datetime.datetime.strptime(i.pop('dateAndTime'), "%b %d, %Y %H:%M:%S").strftime("%d/%m/%Y") , **i} for i in data]
print(data)

Output:

[{'dateAndTime': '03/03/2019', 'frameNumber': '1'},
 {'dateAndTime': '25/04/2021', 'frameNumber': '2'},
 {'dateAndTime': '21/09/2021', 'frameNumber': '3'},
 {'dateAndTime': '01/12/2023', 'frameNumber': '4'}]
Related