Also if you already have the json string in a python variable you can just pass it into json.load(my_json_string) On Fri, Feb 22, 2019 at 6:58 PM James Dugger wrote: > I should also say that you can replace k['date'] in the lambda with > k['title'] or k['url'] to sort by other keys (although I don't know off > hand the result of k['url'] > > > On Fri, Feb 22, 2019 at 6:44 PM James Dugger > wrote: > >> 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. >> >> On Fri, Feb 22, 2019 at 12:21 PM der.hans wrote: >> >>> moin moin, >>> >>> I'm trying to sort some data that is currently in json being imported >>> into >>> a dict. >>> >>> It's essentially bibliography information, but without a unique ID. >>> >>> I mostly want to sort on publication date, but also want to group by >>> publication. There could be multiple publications on the same date. >>> >>> Currently using a json format like: >>> >>> { >>> "pubs": [ >>> { >>> "date": 20190222 >>> "title": "a title" >>> "url": "https://some.domain/page.html" >>> }, >>> { >>> "date": 20190221 >>> "title": "another title" >>> "url": "https://some.other.domain/page.html" >>> } >>> ] >>> } >>> >>> Format can change if that helps. >>> >>> I want to be able to display items in order. Mostly chronological, but >>> also by other details. >>> >>> Any suggestions for how to sort them for display? >>> >>> A nice, but not required, feature would be sorting them for saving to >>> disk >>> as well. >>> >>> ciao, >>> >>> der.hans >>> -- >>> # https://www.LuftHans.com https://www.PhxLinux.org >>> # "You want weapons? We're in a library! Books! The best weapons in the >>> # world! This room's the greatest arsenal we could have - arm >>> yourselves!" >>> # -- the Doctor: Doctor Who, Tooth and Claw, 2006 >>> --------------------------------------------------- >>> PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org >>> To subscribe, unsubscribe, or to change your mail settings: >>> https://lists.phxlinux.org/mailman/listinfo/plug-discuss >> >> >> >> -- >> James >> >> *Linkedin * >> > > > -- > James > > *Linkedin * > -- James *Linkedin *