【发布时间】:2015-11-15 18:10:44
【问题描述】:
我正在使用 Python Flickr API,但在定义函数时遇到问题(我对 Python 有点陌生)。
我需要将以下 api 功能包装到一个函数中:
photos = flickr.photos_search(
tags="foo",
is_commons="True")
这会从 Flickr 的 Commons 收藏中返回标签“foo”的照片搜索。
现在我想在每次搜索时替换标签,所以我将它包装在一个函数中:
def search_photos(fl_tags):
photos = flickr.photos_search(
tags=fl_tags,
is_commons="True")
search_photos("foo")
这可行,is_commons 标志但是,我需要偶尔完全替换(不仅是值,还有键,因为 Flickr 的 API 中似乎有一个错误,它总是在 Commons 集合中搜索,无论是哪个值你设置的标志)。
在这种情况下,我想将其替换为键值组合license="9"。
我不知道如何将它放入函数参数中。如果我提供一个fl_license 参数并在调用该函数时将其简单地设置为license="9",那么这不起作用(正如我所预料的那样)。
def search_photos(fl_tags, fl_license):
photos = flickr.photos_search(
tags=fl_tags,
fl_license)
search_photos("foo", license="9") # --> SyntaxError: non-keyword arg after keyword arg
有没有办法让它工作。如何通过函数参数获取键值对?
谢谢!
【问题讨论】:
-
所以基本上将
license="9"传递给flickr.photos_search函数?你能在那里传递dict吗? -
@Zizouz212 是的,完全正确。将字典传递给 flickr.photos.search 不起作用,而是返回类型错误。 photos = flickr.photos_search(fl_dict) TypeError: __call__() 只需要 1 个参数(给定 2 个)
标签: python python-2.7 arguments flickr