前提・実現したいこと
flickrの画像のメタデータをtxtファイルに抽出したいのですが、エラーが出てしまいます
発生している問題・エラーメッセージ
Traceback (most recent call last): File "geo-1.py", line 53, in <module> pprint(photos) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 53, in pprint printer.pprint(object) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 139, in pprint self._format(object, self._stream, 0, 0, {}, 0) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 167, in _format p(self, object, stream, indent, allowance, context, level + 1) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 189, in _pprint_dict context, level) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 346, in _format_dict_items context, level) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 167, in _format p(self, object, stream, indent, allowance, context, level + 1) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 210, in _pprint_list context, level) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 389, in _format_items context, level) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 167, in _format p(self, object, stream, indent, allowance, context, level + 1) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 189, in _pprint_dict context, level) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 346, in _format_dict_items context, level) File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\pprint. py", line 176, in _format stream.write(rep) UnicodeEncodeError: 'cp932' codec can't encode character '\xe9' in position 15: illegal multibyte sequence
該当のソースコード
python
1import os 2 3import time 4import traceback 5 6import flickrapi 7from urllib.request import urlretrieve 8 9import sys 10from retry import retry 11from pprint import pprint 12 13flickr_api_key = "" 14secret_key = "" 15 16keyword = sys.argv[1] 17 18 19@retry() 20def get_photos(url, filepath): 21 urlretrieve(url, filepath) 22 time.sleep(1) 23 24 25if __name__ == '__main__': 26 27 flicker = flickrapi.FlickrAPI(flickr_api_key, secret_key, format='parsed-json') 28 response = flicker.photos.search( 29 text=keyword, 30 media='photos', 31 sort='relevance', 32 safe_search=1, 33 has_geo=1, 34 extras='url_q,license,geo' 35 ) 36 photos = response['photos'] 37 38 try: 39 if not os.path.exists('./image-data/' + keyword): 40 os.mkdir('./image-data/' + keyword) 41 42 for photo in photos['photo']: 43 url_q = photo['url_q'] 44 filepath = './image-data/' + keyword + '/' + photo['id'] + '.jpg' 45 get_photos(url_q, filepath) 46 47 except Exception as e: 48 traceback.print_exc() 49 50 photos = response['photos'] 51 pprint(photos)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/10/04 10:45