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

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

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

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

Q&A

解決済

2回答

193閲覧

このpython コードが実装できません。

退会済みユーザー

退会済みユーザー

総合スコア0

Python

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

0グッド

1クリップ

投稿2018/09/07 19:20

編集2018/09/08 13:23

import json
import requests

print(都市=", data["name"]) print(天気=", data["weather"][0]["description"]) print( 最低気温=", k2c(data["main"]["temp_min"])) print(最高気温=", k2c(data["main"]["temp_max"])) print(湿度=", data["main"]["humidity"])

*どこが間違って実装できないかわかりません。間違ってる箇所を教えてくだい。

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

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

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

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

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

y_waiwai

2018/09/07 21:30

実装できない、とはどうなる?
otn

2018/09/07 22:13

実行できない、の間違い?具体的な現象は?
退会済みユーザー

退会済みユーザー

2018/09/08 05:58

printから始まる行にエラーがでます。。
y_waiwai

2018/09/08 07:52

エラーが出るならそのエラーメッセージを提示しましょうよ。。
退会済みユーザー

退会済みユーザー

2018/09/08 08:50

ごめんなさい。。   /Users/ユーザー名/.pyenv/versions/3.6.5/bin/python /Users/ユーザ名/PycharmProjects/untitled/task.py Traceback (most recent call last): File "/Users/ユーザー名/PycharmProjects/untitled/task.py", line 18, in <module> print("+ 都市=", data["name"]) KeyError: 'name' Process finished with exit code 1
takepan1973

2018/09/08 09:04

エラーメッセージを見れば分かると思いますが、dataの中にnameというキーがありません、と出ています。プログラムを実行する環境において、レスポンスが取得できる状態になっているか、確認してください。
退会済みユーザー

退会済みユーザー

2018/09/08 09:19

pythonのバージョン、ライブラリのインストールはしているので実行する環境は問題ないと思います。
guest

回答2

0

ベストアンサー

import json import requests apikey = "{見せられないよ!}" cities = ["Tokyo", "Osaka"] api = "http://api.openweathermap.org/data/2.5/weather?q={city}&APPID={key}" k2c = lambda k: k - 273.15 for name in cities: url = api.format(city=name, key=apikey) r = requests.get(url) data = json.loads(r.text) print("+ 都市=", data["name"]) print("| 天気=", data["weather"][0]["description"]) print("| 最低気温=", k2c(data["main"]["temp_min"])) print("| 最高気温=", k2c(data["main"]["temp_max"])) print("| 湿度=", data["main"]["humidity"]) print("| 気圧=", data["main"]["pressure"]) print("| 風向き=", data["wind"]["deg"]) print("| 風速度=", data["wind"]["speed"]) print("")
■結果 + 都市= Tokyo | 天気= scattered clouds | 最低気温= 28.0 | 最高気温= 32.0 | 湿度= 64 | 気圧= 1013 | 風向き= 60 | 風速度= 4.6 + 都市= Osaka | 天気= shower rain | 最低気温= 23.0 | 最高気温= 24.0 | 湿度= 88 | 気圧= 1012 | 風向き= 360 | 風速度= 3.1

私の方では普通に出ましたが……
都市名に「,JP」が不要なのでは?

投稿2018/09/08 07:26

takepan1973

総合スコア821

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

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

退会済みユーザー

退会済みユーザー

2018/09/08 08:48

変えてもできませんでした。。何かライブラリでインストールされてないのがあるのでしょうか。。
takepan1973

2018/09/08 08:51

「できません」という曖昧な言い方はやめたほうが良いと思います。 エラーが出るんですか?何も出ないんですか? デバッグコードを仕込んで、どこまでは意図した通りの動作が出来ているか、確認したりしましたか?
退会済みユーザー

退会済みユーザー

2018/09/08 09:06

ごめんんさい。。 print("+ 都市=", data["name"]) KeyError: 'name' これが出ました!
takepan1973

2018/09/08 11:38

であるならば、次はdataにnameのキーがあるかどうか確認するべきではないですか? print(data) の結果はどうでしょうか? 1行目(Tokyo)の私の方の結果(整形後)は以下のようになりましたよ。 { "coord": { "lon": 139.76, "lat": 35.68 }, "weather": [ { "id": 500, "main": "Rain", "description": "light rain", "icon": "10n" } ], "base": "stations", "main": { "temp": 298.85, "pressure": 1016, "humidity": 81, "temp_min": 297.25, "temp_max": 301.15 }, "visibility": 16093, "wind": { "speed": 3.6, "deg": 20 }, "clouds": { "all": 40 }, "dt": 1536404160, "sys": { "type": 1, "id": 7622, "message": 0.0059, "country": "JP", "sunrise": 1536351494, "sunset": 1536397106 }, "id": 1850147, "name": "Tokyo", "cod": 200 }
takepan1973

2018/09/08 11:52 編集

ちなみにAPIKEYが間違っている場合は {'cod': 401, 'message': 'Invalid API key. Please see http://openweathermap.org/faq#error401 for more info.'} というような応答になり、nameというキーはないのでご質問のようなエラーが出ます。
退会済みユーザー

退会済みユーザー

2018/09/08 11:54

'message': 'Invalid API key. Please see http://openweathermap.org/faq#error401 for more info.'} このようなエラーが出ました!これはOPWの方APIキーが何かおかしいのでしょうか。。
退会済みユーザー

退会済みユーザー

2018/09/08 11:56

あ!キーが間違ってる見たいです!このような場合はもう一回アカウント作った方がいいのでしょうか? 何度も質問すいません!
takepan1973

2018/09/08 12:00

コピペミスとかだと思うので、もう一度APIKEYを確認しては如何でしょうか? そんなにアカウントをぽこぽこ作られても迷惑かと。
退会済みユーザー

退会済みユーザー

2018/09/08 12:22

すいませんやっぱりできません。error401というのがアカウント登録してからAPIを使わなければいけないことを示してるエラーらしいですが、私は登録してるのにも関わらずエラーが出ます。。
退会済みユーザー

退会済みユーザー

2018/09/08 12:56

やっとできました(汗 丁寧に教えていただきありがとうございました!
takepan1973

2018/09/08 15:18

できれば、今後のために「最終的に何が原因だったか」書いて欲しいような気もしますが、 とりあえず解決したようで何よりです。
guest

0

参考情報

  • OpenWeatherMap APIをPythonで叩いてパースするメモ

http://www.shibuya24.info/entry/openweathermap_api

  • 無料天気予報APIのOpenWeatherMapを使ってみる

http://www.shibuya24.info/entry/openweathermap_api

投稿2018/09/07 21:05

編集2018/09/07 21:07
katoy

総合スコア22324

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

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

退会済みユーザー

退会済みユーザー

2018/09/08 05:57

参考文献ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問