質問: urllib.request.urlopen(req) print(f.read().decode('utf-8')) ```
回答: 複数の問題点があります。 * 参照先のサイトに従うのであれば、`json_str` は辞書ではなく文字列にすべきです。今回の場合、`json_str = '{"a":1}'` のようにシングルクオートで全体を囲えば良いです。 * リクエスト先の URI が異なります。やりたいことに応じて、ConoHa のドキュメントに書いてある "Request URL" をご参照ください。また、ドキュメントの以下にも注意してください。 > > ※エンドポイントURLにつきましては、お客様環境によって異なりますので、コントロールパネルにてご確認の上ご利用ください。 > > > * 変数 `method` が、初期値を代入された後使われていません。今回は単に要らないです。 * コピー・ペースト時の問題かもしれませんが、Python のプログラムはインデントに意味があります。それぞれの行の左側にある空白を消さないようにしてください。 また、単に API を叩くだけであれば、ご参照先のブログにも書いてあるように urllib.request ではなく Requests を使った方が見通しが良いと思います。たとえば今回の場合、今行っているのが GET なのか POST なのかもコードから読み取りづらいですが、Requests だとこれが改善されます。日本語だと Qiita のこの記事の解説が分かりやすいと思います。