使用Python从json / dict中仅提取最新的(按日期)

时间:2015-02-19 04:10:07

标签: python json

我有以下dict http://uberlandia.com/papodebuteco/api/get_tag_posts/?tag_slug=uberlandiahome,我想只按日期提取最新的一个。{{3}}。使用python。

def get_posts(self):
r = requests.get('http://uberlandia.com/papodebuteco/api/get_tag_posts/?tag_slug=uberlandiahome',)
if r.ok:
    data = json.loads(r.content.encode('UTF-8'))
    for post in data['posts']:
        print data['posts'] # If it was django I could do .latest(), but it's not.
        print "==================================================="
        title = post['title']
        url = u'%s' % post['url'] 
        print post['attachments'][0]['images']['full']['url']
        print url
        print u'%s'% post['date']
        #dict = {'featured_post' : {'title' : title, 'url':url}}
else:pass

如何从此功能中按日期返回最新的帖子?

2 个答案:

答案 0 :(得分:3)

使用max和lambda函数很容易:

from dateutil.parser import parse

latest = max(data['posts'], key=lambda x: parse(x['date']))

答案 1 :(得分:-3)

max函数需要一个关键参数!所以你可以这样做:

def keyfunction(v):
    return parsedate(v["date"])

latest=max(yourdict["posts"],key=keyfunction))

关键参数非常有用,并且存在于很多内置函数中,例如min,max和sort。