質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1700閲覧

python エラーの解決方法

yukimaru123

総合スコア7

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/07/28 15:04

編集2019/07/28 15:39

画像認識を行うAIを作成しようとしています。
flickrから画像を取得しようとしているのですが以下のようなエラーコードが出てしまいます。

31行目のphotos = result['photos']のところでエラーが出ます。
byte indices must be integers or slices, not str

ソースコードはこちらです。

python

1#保存フォルダの指定 2actress_name = sys.argv[1] 3savedir = "./" + actress_name 4 5flickr = FlickrAPI(key, secret, format='parsed_json') 6result = flickr.photos.search( 7 text = actress_name, 8 per_page =200, 9 media = 'photos', 10 sort = 'relevance', 11 safe_search = 1, 12 extras = 'url_q, licence' 13 14) 15 16photos = result['photos'] 17 18pprint(photos)

ググったりコードをいじったりしましたが、どうしても治りません。
どうか解決方法を教えてください。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kairi003

2019/07/28 15:18

ソースコードはマークダウンを利用してcode欄に書きましょう
yukimaru123

2019/07/28 15:40

すみません、編集しました。ご回答よろしくお願いいたします。
0kcal

2019/07/28 15:56

resultにまともな情報が入ってないのでは? pprint(result) #resultの中身は? photos = result['photos'] とすると、何がでるのでしょう?
yukimaru123

2019/07/28 16:00

(b'<?xml version="1.0" encoding="utf-8" ?>\n<rsp stat="fail">\n\t<err code="11' b'1" msg="Format &quot;parsed_json&quot; not found" />\n</rsp>\n') Traceback (most recent call last): File "download.py", line 30, in <module> photos = result['photos'] TypeError: byte indices must be integers or slices, not str こうなります
0kcal

2019/07/28 16:24

お疲れ様です。 resultの内容が、[`photos`]とかで、処理できそうな内容じゃないですよね。 jsonみたいなのを期待されているのだと思いますが、 今のエラー部位以前のところがうまくいってない気がします。 別の方が回答のほうに記載されているように、エラー自体は、 bytesに[`photos`]と言われても、、、 というエラーですが。。。 resultにちゃんとした値が入れば、そこは、自動的にエラーじゃなくなると思います。
yukimaru123

2019/07/28 16:31

parsed_jsonじゃなくてparsed-jsonでした!
guest

回答1

0

ベストアンサー

エラーを読みましょう。resultのインデックスに文字列は利用できない、整数かスライスだと言っています。
つまりresultは明らかにリストBytes型です。
一度pprint(result)でそのままの構造を確認してはいかがでしょうか。

返り値resultの中身

xml

1<?xml version="1.0" encoding="utf-8" ?> 2<rsp stat="fail"> 3 <err code="111" msg="Format &quot;parsed_json&quot; not found" /> 4</rsp>

【追記】
ちょっと他サイト見てきたんですが、formatが'parsed_json'じゃなくて'parsed-json'では?

投稿2019/07/28 15:44

編集2019/07/28 16:27
kairi003

総合スコア1330

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yukimaru123

2019/07/28 15:54

(b'<?xml version="1.0" encoding="utf-8" ?>\n<rsp stat="fail">\n\t<err code="11' b'1" msg="Format &quot;parsed_json&quot; not found" />\n</rsp>\n') このような結果が出てきました。 申し訳ないですけど「rsp stat」「t」、あとエラーコードの内容を教えてもらってもよろしいでしょうか。
kairi003

2019/07/28 16:02

byte indices must be integers or slices, not str はそのまま 「バイト型のインデックスはstrではなく、整数またはスライスでなければなりません。」 です。それ以上の意味はありません。 flickr.photos.search()の戻り値はxmlが来ているようですが明らかに取得失敗に見えます。 引数に間違いがあるのでは?
yukimaru123

2019/07/28 16:14

すみません、見つけられないです。教えてもらってもいいですか?
kairi003

2019/07/28 16:27 編集

resultをresult.decode()でデコードしてstr型にしたものは回答のようになります。 errのmsgが "Format 'parsed_json' not found" なんで 「parsed_jsonなんてフォーマットは見つからない」って言われてますね。 'parsed-json'では?
yukimaru123

2019/07/28 16:31

parsed-jsonでした!!くだらないミスに長々とお付き合いいただき、有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問