文字コードの問題だと思います。https://qiita.com/butada/items/33db39ced989c2ebf644
前提・実現したいこと
flickrの画像のメタデータの抽出
発生している問題・エラーメッセージ
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
1 2import os 3 4import time 5import traceback 6 7import flickrapi 8from urllib.request import urlretrieve 9 10import sys 11from retry import retry 12from pprint import pprint 13 14flickr_api_key = "" 15secret_key = "" 16 17keyword = sys.argv[1] 18 19 20@retry() 21def get_photos(url, filepath): 22 urlretrieve(url, filepath) 23 time.sleep(1) 24 25 26if __name__ == '__main__': 27 28 flicker = flickrapi.FlickrAPI(flickr_api_key, secret_key, format='parsed-json') 29 response = flicker.photos.search( 30 text=keyword, 31 media='photos', 32 sort='relevance', 33 safe_search=1, 34 has_geo=1, 35 extras='url_q,license,geo' 36 ) 37 photos = response['photos'] 38 39 try: 40 if not os.path.exists('./image-data/' + keyword): 41 os.mkdir('./image-data/' + keyword) 42 43 for photo in photos['photo']: 44 url_q = photo['url_q'] 45 filepath = './image-data/' + keyword + '/' + photo['id'] + '.jpg' 46 get_photos(url_q, filepath) 47 48 except Exception as e: 49 traceback.print_exc() 50 51 photos = response['photos'] 52 pprint(photos)
回答1件
あなたの回答
tips
プレビュー