views:

51

answers:

1

I can't get this to work... what could be the problem?

import flickrapi

api_key = '1234...'

flickr = flickrapi.FlickrAPI(api_key)
user = '43699959@N02'
favs = flickr.favorites_getPublicList(user_id = user)

>>> favs.items()
[('stat', 'ok')]

>>> favs.text
'\n'

Where are my favorite photo's?

Note: It does work via this testing page: http://www.flickr.com/services/api/explore/?method=flickr.favorites.getPublicList

+3  A: 

The result is correct -- as per the URL you gave, the XML nodes are empty (plus/minus newline and whitespace characters, apparently). favs.text would return the content, but what you're looking for is in the attributes. Try this:

for photo in favs.find('photos').findall('photo'):
    print photo.get('id')

Result:

'445267544'
'3334987037'

Or for all child nodes, starting from the root:

for elm in favs.getiterator():
    print elm.items()

Result:

[('stat', 'ok')]
[('total', '2'), ('perpage', '100'), ('page', '1'), ('pages', '1')]
[('isfamily', '0'), ('title', 'The Giants of Africa'), ('farm', '1'), ('ispublic', '1'), ('server', '218'), ('isfriend', '0'), ('secret', '992df924aa'), ('owner', '49746597@N00'), ('id', '445267544'), ('date_faved', '1273873654')]
[('isfamily', '0'), ('title', 'Lava Light - Maui, Hawaii'), ('farm', '4'), ('ispublic', '1'), ('server', '3401'), ('isfriend', '0'), ('secret', '2fa1856916'), ('owner', '7765891@N08'), ('id', '3334987037'), ('date_faved', '1273873515')]
chryss
The second line of code should be: print photo.get('id')
compie
Thanks, corrected. I was running it in the interactive console of course.
chryss