我正在尝试使用Python FlickrAPI包来管理我在Flickr中的一些照片.我无法让某些功能正常工作.我从以下开始:
import flickrapi
api_key='###MYkeyHERE###'
api_secret'####MYsecretHERE###'
flickr = flickrapi.FlickrAPI(api_key,secret=api_secret)
Run Code Online (Sandbox Code Playgroud)
我还运行了令牌身份验证并检查了我的Flickr帐户页面以确保它有效
(token, frob) = flickr.get_token_part_one(perms='write')
flickr.get_token_part_two((token, frob))
Run Code Online (Sandbox Code Playgroud)
当我运行以下命令获取我的集合列表时,它返回看似空响应的内容.
photos = flickr.photos_search(user_id='MYuser@id', per_page='10')
Run Code Online (Sandbox Code Playgroud)
响应看起来像:
<Element 'rsp' at 0x22c2e10>
Run Code Online (Sandbox Code Playgroud)
它具有'stat'属性,设置为OK.我想知道如何实际看到集合列表.
有趣的是,以下代码完美运行并在我的一组中打印照片的名称:
for photo in flickr.walk_set('72157636771398243'):
print photo.get('title')
Run Code Online (Sandbox Code Playgroud)
这使我认为我的身份验证工作正常,但我正在做一些其他错误.我非常感谢帮助.
我不认为你错了.查看Flickr API flickr.photos.search文档页面上的示例响应.
<photos page="2" pages="89" perpage="10" total="881">
<photo id="2636" owner="47058503995@N01"
secret="a123456" server="2" title="test_04"
ispublic="1" isfriend="0" isfamily="0" />
<photo id="2635" owner="47058503995@N01"
secret="b123456" server="2" title="test_03"
ispublic="0" isfriend="1" isfamily="1" />
<photo id="2633" owner="47058503995@N01"
secret="c123456" server="2" title="test_01"
ispublic="1" isfriend="0" isfamily="0" />
<photo id="2610" owner="12037949754@N01"
secret="d123456" server="2" title="00_tall"
ispublic="1" isfriend="0" isfamily="0" />
</photos>
Run Code Online (Sandbox Code Playgroud)
我出于好奇而尝试了这个并得到了这些结果,与操作解析的XML响应字符串一致:
>>> photos
<Element 'rsp' at 0x2199a10>
>>> photos[0]
<Element 'photos' at 0x2199a30>
>>> photos[0][0]
<Element 'photo' at 0x2199cf0>
>>> photos[0][0].get('id')
'11124140143'
>>> photos[0][0].get('owner')
'62997566@N08'
Run Code Online (Sandbox Code Playgroud)
因此我怀疑您正在使用API,但您可能需要进行一些实验以了解如何最好地使用结果.
根据FlickrAPI文档,FlickrAPI调用的返回值是ElementTree.这应该有助于弄清楚如何分开响应的内容:
>>> import flickrapi
>>> import xml
>>> api_key = 'my API key'
>>> api_secret = 'my API secret'
>>> flickr = flickrapi.FlickrAPI(api_key,secret=api_secret)
>>> r = flickr.photos_search(user_id='48439369@N00', per_page='10')
>>> xml.etree.ElementTree.dump(r)
<rsp stat="ok">
<photos page="1" pages="376" perpage="10" total="3754">
<photo farm="8" id="10550639536" isfamily="0" isfriend="0" ispublic="1" owner="48439369@N00" secret="fb5a1b526c" server="7336" title="Morgan and Quinn" />
<photo farm="3" id="10550684964" isfamily="0" isfriend="0" ispublic="1" owner="48439369@N00" secret="0091541055" server="2840" title="Morgan and Quinn" />
...
</photos>
</rsp>
>>>
Run Code Online (Sandbox Code Playgroud)
ElementTree类提供了更多方法来检查结果,遍历树并查找感兴趣的节点.
| 归档时间: |
|
| 查看次数: |
999 次 |
| 最近记录: |