###概要
環境はPython 3.6.5です。
エラーメッセージは以下の通りです。
Traceback (most recent call last): File "C:\Users\mamet\AppData\Local\Programs\Python\Python36-32\analyze_image\get_image.py", line 41, in <module> pprint(photos) File "C:\Users\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 53, in pprint printer.pprint(object) File "C:\Users\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 139, in pprint self._format(object, self._stream, 0, 0, {}, 0) File "C:\Users\mamet\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\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 189, in _pprint_dict context, level) File "C:\Users\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 346, in _format_dict_items context, level) File "C:\Users\mamet\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\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 210, in _pprint_list context, level) File "C:\Users\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 389, in _format_items context, level) File "C:\Users\mamet\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\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 189, in _pprint_dict context, level) File "C:\Users\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 346, in _format_dict_items context, level) File "C:\Users\mamet\AppData\Local\Programs\Python\Python36-32\lib\pprint.py", line 176, in _format stream.write(rep) UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 1-1: Non-BMP character not supported in Tk >>> コード
###ソースコードを以下に記載。
from flickrapi import FlickrAPI from urllib.request import urlretrieve from pprint import pprint import os, time # API キーの情報 key = "####取得したキーを入力" secret = "#####取得したsecretを入力" # 重要:リクエストを送るタイミングが短すぎると画像取得先のサーバを逼迫してしまうか、 # スパムとみなされてしまう可能性があるので、待ち時間を 1 秒間設ける。 wait_time = 1 # コマンドライン引数の 1 番目の値を取得 vehiclename = input('検索項目>>')#本来はsys.argv[1]でコマンドラインから引数を取得 # 画像を保存するディレクトリを指定 savedir = "./" + vehiclename # FlickrAPI にアクセス # FlickrAPI(キー、シークレット、データフォーマット{json で受け取る}) flickr = FlickrAPI(key, secret, format='parsed-json') result = flickr.photos.search( # 検索キーワード text = vehiclename, # 取得するデータ件数 per_page = 400, # 検索するデータの種類(ここでは、写真) media = 'photos', # データの並び順(関連順) sort = 'relevance', # UI コンテンツを表示しない safe_search = 1, # 取得したいオプションの値(url_q->画像のアドレスが入っている情報、licence -> ライセンス情報) extras = 'url_q, licence' ) # 結果を表示 photos = result['photos'] pprint(photos) # 追記 for photo in photos['photo']: url_q = photo['url_q'] filepath = savedir + '/' + photo['id'] + '.jpg' # ファイルが重複していたらスキップする if os.path.exists(filepath): continue # データをダウンロードする urlretrieve(url_q, filepath) # 重要:サーバを逼迫しないように 1 秒待つ time.sleep(wait_time) コード
###試したこと
今のところ試したことはありません。
調べたところUCS-2が今の環境に対応したものでないことと、それが絵文字などのデータ類であること、その程度です。
補足情報(FW/ツールのバージョンなど)
エラーが表示されたのは検索項目に'ship'を指定してコマンドを実行したときです。
必要なライブラリ群はすべて最新のものに更新してあります。
どうやって実行しているかの情報と、エラーの全文が要るでしょうか
実行したときの状況を記載したのは、'car'で実行したときはエラーが出なかったためです。エラーを全文載せたのはどこからどこまで必要かわからなかったからです。あと記載するのを忘れていましたが、OSはWindows10です。
「要るでしょうか」は「要るだろうと推測します」という意味でした。すみません。今の質問だとどうやって実行しているかもわかりませんし、エラーが出ている箇所もわかりません。
「エラーの全文」はバックトレースも含めた全部という意味です。
意図を理解できていませんでした。実行はPythonに付属しているIDLEを使用しています。一応PyCharmはインストールしてありますが、Anacondaは入っていません。エラーは最後に表示されている部分のみです。全文で記載しなおします。

回答1件
あなたの回答
tips
プレビュー