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 <
james.dugger@gmail.com> 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 <james.dugger@gmail.com>
> 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 <PLUGd@lufthans.com> 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 <http://www.linkedin.com/pub/james-h-dugger/15/64b/74a/>*
>>
>
>
> --
> James
>
> *Linkedin <http://www.linkedin.com/pub/james-h-dugger/15/64b/74a/>*
>
--
James
*Linkedin <
http://www.linkedin.com/pub/james-h-dugger/15/64b/74a/>*
---------------------------------------------------
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