flickrAPI загружает фотографии

#python-3.x #flickr

Вопрос:

Я пытаюсь использовать 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
 

глядя на документацию по API Flickr, кажется, что он принимает до пяти аргументов (имя файла,
имя файла, заголовок, описание, теги), и я передаю только четыре, так как fileobj необязателен.

Я поискал в Гугле несколько примеров, но мне не удалось найти что-то, что делает этот трюк. Так что любая помощь была бы потрясающей.

С уважением,

Марсио

Ответ №1:

Я нашел решение и делюсь им здесь. С моим кодом было две проблемы.

Во-первых: Мы должны использовать кварги; Во-вторых: теги должны быть разделены пробелом, а не запятыми

Вот окончательная версия:

 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)
 

Это оно…