Picasa Python API:从所有联系人处获取最近上传的照片

时间:2011-02-03 20:53:10

标签: python api picasa

我正在使用Python Picasa API从我的所有联系人那里获取20张最新照片(因此最近只有20张照片)。我用Python编写了这个,但它非常非常慢。它也没有真正优化,因为每次接触我都会拍摄20张照片(而且我只需要20张照片)。

def getRecentPhotos(self, user='default', limit='20'):
    users = self.getContactIDs(user)
    photos_tmp = []
    photos = []
    for user in users:
        photos_tmp = self.getRecentPhotosByUser(user)
        for photo in photos_tmp.entry:
            photos.append(photo)
    photos_sorted = sorted(photos, key=lambda photo: photo.timestamp.text, reverse=True)
    return photos_sorted[:20]

此请求平均需要8秒(在本地网络服务器上)。我怎么能优化这个?最长的调用是两个for循环嵌套的部分..

1 个答案:

答案 0 :(得分:1)

您可以从第一个用户那里获得20张照片,然后在每个用户之后,首先获取最近的一张照片。如果这个最近已经足够在最近的20个,那就多得多(直到它们不再足够新)。如果没有,请立即转到下一个联系人。

如果您不太关心每次最近20次,您也可以缓存结果,偶尔检查每个联系人,看看他们是否添加了新照片。