我正在尝试使用 python Flickr API 将照片上传到我的 Flickr 帐户。我已经获得了 API 密钥和秘密,并使用它们来获取有关我的相册和照片的信息,但是我在尝试上传新照片时遇到了一些错误。这是我的代码:
import flickrapi
api_key = u'xxxxxxxxxxxxxxxxxxxxxxxx'
api_secret = u'xxxxxxxxxxxxxxxxxxxx'
flickr = flickrapi.FlickrAPI(api_key, api_secret)
filename = 'd:/downloads/_D4_6263-Enhanced.png'
title = 'Fach Halcones'
description = 'Posting image using API'
tags = 'fidae'+','+'aviation'+','+'extra'+','+'air shows'
flickr.upload(filename, title, description, tags)
当我运行脚本时,出现以下错误:
File "uploadPhotos.py", line 15, in module
flickr.upload(filename, title, description, tags)
TypeError: upload() takes from 2 to 4 positional arguments but 5 were given
查看 Flickr API 文档,它似乎最多接受五个参数(文件名、 fileobj、标题、描述、标签),我只传递四个,因为 fileobj 是可选的。
我在谷歌上搜索了一些例子,但我找不到可以解决问题的东西。所以,任何帮助都会很棒。
问候,
马西奥
答案 0 :(得分:1)
我找到了解决方案,并在这里分享。我的代码有两个问题。
首先:我们必须使用kwargs;第二:标签之间必须用空格隔开,不能用逗号
这里是最终版本:
import flickrapi
api_key = u'xxxxxxxxxxxxxxxxxxxxxxxx'
api_secret = u'xxxxxxxxxxxxxxxxxxxx'
flickr = flickrapi.FlickrAPI(api_key, api_secret)
params = {}
params['filename'] = 'd:/downloads/_D4_6263-Enhanced.png'
params['title'] = 'Fach Halcones'
params['description'] = 'Posting image using API'
params['tags'] = '''fidae aviation extra "air shows" '''
flickr.upload(**params)
就是这样...