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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

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

Q&A

解決済

2回答

3538閲覧

エラー’'utf-8' codec can't decode byte’の解決法について

trafalbad

総合スコア303

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

Python

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

0グッド

0クリップ

投稿2019/09/15 03:47

編集2019/09/15 04:38

pythonでこのサイトを真似て、Amazon sagemakerで呼び出したモデルで推論を行いましたが、推論結果をjson.loads()しようとするとエラーが出ます。

python

1# エラー 2UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 2: invalid continuation byte

コードはほぼサイトのと同じものを使用してますが、ラストのbyte形式の読み込みがうまくいきません。どうすれば解決できるか教えていただけないでしょうか?

python

1# Dsフォルダに画像の保存 2path='test_dir' 3for idx, file in enumerate(os.listdir(path)): 4 img = cv2.imread(path+'/'+file) 5 img = Image.fromarray(np.uint8(np.array(img))) 6 img = img.convert("RGB") 7 img.save('Ds/img_{}.jpg'.format(idx)) 8 9# 画像のload 10runtime = boto3.Session().client(service_name='sagemaker-runtime') 11img = open('Ds/img_1.jpg', 'rb').read() 12 13# 推論 14response = runtime.invoke_endpoint( 15 EndpointName='****', 16 ContentType='application/x-image', 17 Body=bytearray(img)) 18# read the prediction result and parse the json 19result = response['Body'].read() 20 21# byteの読み込み 22result = json.loads(result) 23>>> 24#エラー 25# UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 2: invalid continuation byte 26

#追記(resultsの中身)

python

1b'\n#\xd7\xce9HU\x00\n\x9f\x90\xd5\x02\n\x06target\x12\x92\x90\xd5\x02\x12\x8d\x90\xd5\x02\n\x88\x90\xd5\x02\x1c\x9c}?#o}?}>}?\xe3\t}?\xfb\xd0|?j\x93|?\xcaP|?\xb2\x08|?\xab\xba{?&\x15|?,h|?\x84\xb3|?\xf7\xf7|?:6}?\xf3n}?\xab\xa2}?\xe7\xd1}?&\xf8}?h\x1a~?S9~?dU~?\xfen~?z\x86~?\x19\x9c~?\x19\xb0~?\xf7\xd4~?\x15\xf6~?\x85\x13\x7f?\xaf-\x7f?\xf3D\x7f?\xa2Y\x7f?\x04l\x7f?\|\x7f?O\x83\x7f?\xad\x89\x7f?\xaf\x8f\x7f?[\x95\x7f?\xb6\x9a\x7f?\xc2\x9f\x7f?\x87\xa4\x7f?\x06\xa9\x7f?U\xa9\x7f?\x7f\xa9\x7f?\xa5\xa9\x7f?\xc9\xa9\x7f?\xe9\xa9\x7f?\x05\xaa\x7f?\x1f\xaa\x7f?5\xaa\x7f?\x0c\xb1\x7f?\x97\xb7\〜 2中略 341\xe6:\xb8\x95\x00;\xadB\x0f;E\x9a\x1f;,\xcd1;\xb2\x11F;-\xa2\;\xa4Hu;iHk;\xa0\xafa;\xcbyX;\xa3\xa3O;\xb9(G;\x05\x06?;\xb277;\x12\xce/;\x9e\x8b4;9h9;sd>;B\x81C;\xb7\xbfH;W N;c\xa4S;uLY;\n\x13\n\x05shape\x12\n:\x08\n\x06\x01\x03\xf7\x02\xda\t\x00\x00\x00'

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

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

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

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

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

guest

回答2

0

自己解決

python

1endpoint_name='*****' 2endpoint_response = boto3.client('sagemaker-runtime').invoke_endpoint( 3 EndpointName=endpoint_name, 4 Body=img, 5 ContentType='image/jpeg', 6 Accept = 'image/png' 7) 8results = endpoint_response['Body'].read() 9mask = np.array(Image.open(io.BytesIO(results))) 10 11# plot 12num_classes=2 13plt.imshow(mask, vmin=0, vmax=num_classes-1, cmap='jet') 14plt.show()

投稿2019/09/19 13:07

trafalbad

総合スコア303

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

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

0

UTF8で解釈できないデータパターンがある、ということなんで、そのファイルを開いて、なんの文字コードなのかを確認してみよう。

投稿2019/09/15 04:05

y_waiwai

総合スコア87774

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

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

trafalbad

2019/09/15 04:39

追記しました。b'\n#で始まる文字列なのですが、どのようにして読み込めばいいでしょうか?
y_waiwai

2019/09/15 06:10

これを見るに、文字コード云々より前に、文字列でもないように見えます 本当にそのデータはJSONの形式なのか、から調べ直してみればどうでしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問