python-3.x - flickrAPI 上传照片
问题描述
我正在尝试使用 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 是可选的。
我已经用谷歌搜索了一些示例,但我找不到可以解决问题的方法。所以,任何帮助都会很棒。
问候,
马西奥
解决方案
我找到了解决方案,我在这里分享。我的代码有两个问题。
第一:我们必须使用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)
而已...
推荐阅读
- python - 如何从等高线 CHAIN_APPROX_SIMPLE 到等高线 CHAIN_APPROX_NONE
- python-3.x - 在python3中重新组织文本文件中的数据
- python - 为什么这个前序遍历会返回最后一个节点?
- ios - 对成员 'downloadTask(with:completionHandler:)' 的模糊引用
- c - 如何将多维数组作为参数传递?
- node.js - 如何使用拦截器访问 nest.js 中的最终 GraphQL-Reponse
- javascript - 如何验证多个输入的 IP 地址?
- javascript - 无需刷新页面即可获取 sessionStorage 数据
- powerbi - 移动 Web 浏览器中的 Power BI RS Web 嵌入
- angular - ionic3中令牌过期时如何注销?