Flickr API 标签照片搜索中 AND 条件的问题
我正在尝试通过以下链接获取一些照片:
http://www.flickr.com/services/api/flickr.photos.search.html,希望能找到同时带有这两个标签的照片:
"abc" and "def" using the following code:
import flickr.py
photos = flickr.photos_search(tags= ["abc", "def"], tag_mode = all, per_page=10)
但是它返回的照片是满足“或”的条件,也就是说,它找到了带有任意一个标签的照片,而不是我想要的同时有这两个标签的照片。这个 tag_mode = all 的设置没有起作用。
谢谢!
1 个回答
1
看起来flickr.py里的这个方法会使用
tag_mode=%3Cbuilt-in+function+all%3E
这导致API无法识别,使用了默认的任何方法
问题的根本原因应该在这个函数里:
def _doget(method, auth=False, **params):
因为使用了all这个在python中是关键字,所以urlencode(all)会把它转换成 %3Cbuilt-in+function+all%3E
所以解决你问题的方法是把
photos = flickr.photos_search(tags= ["abc", "def"], tag_mode = all, per_page=10)
改成
photos = flickr.photos_search(tags= ['abc', 'def'], tag_mode = 'all', per_page=10)