import json
from datetime import datetime
with open('testp.json') as f:
data = json.load(f)
for i in data['pubs']:
pub_date = datetime.strptime(i['date'], '%Y%m%d')
i['date'] = pub_date
pub_list = sorted(data['pubs'], key=lambda k: k['date'])
print(pub_list)
open parses the json file into a python dictionary. Currently the format of your json will produce a dictionary with one key 'pubs' and a value formatted as a python list of nested dictionaries.
The for loop targets the list inside the main dictionary and first converts the date to a python date object.
Then simply use the sorted method with a lambda expression to sort the order of dictionaries by the newly created date objects.
Yor initial date values are integers. You will need to either store them in the json object as strings or convert them so that datetime.strptime() can parse them.
I'm sure there are other ways to do this but this was the fastest given the json format.