Flickr API 标签照片搜索中 AND 条件的问题

0 投票
1 回答
786 浏览
提问于 2025-04-17 22:21

我正在尝试通过以下链接获取一些照片:

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)

撰写回答