#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)
Это оно…