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

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

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

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Python

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

Q&A

0回答

809閲覧

ターミナルでPythonのファイルを実行しても結果が出力されない

Issei.Yaguchi

総合スコア1

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Python

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

0グッド

0クリップ

投稿2021/09/02 04:36

ターミナルでweathergetter.pyというファイルを実行したところ、結果が出力されません。またエラーも出力されないのでどこを修正すれば良いのかがわかりません。
lineのチャットボットに天気予報の情報を組み込む過程でのことです。
以下のサイトを参考になぞってやっています。
リンク内容

weathergetter.pyのコード

import bs4 import requests class GetPlaceData(): ''' 全国の地点定義表から、都市名とidを取得するクラス ''' def __init__(self): ''' 全国地点定義表を読み込む ''' path = 'http://weather.livedoor.com/forecast/rss/primary_area.xml' self.res = requests.get(path) def get_city(self): ''' 都市名とidを辞書型で取得 ''' city_list = {} b = bs4.BeautifulSoup(self.res.text, 'xml').select('city') for city in b: city_list[city.get('title')] = city.get('id') return(city_list) class GetWeatherData(): ''' livedoorのAPIから、天気予報データを取得するクラス ''' url = 'http://weather.livedoor.com/forecast/webservice/json/v1' def __init__(self, city_id): place = {'city' : city_id} self.weather_data = requests.get(self.url, place).json() def get_weather(self): self.weather = [] #天気(晴れ、雨など) self.temperature_max = [] #最高気温 self.temperature_min = [] #最低気温 for w in self.weather_data['forecasts']: self.weather.append(w['telop']) try: self.temperature_max.append(' max ' + w['temperature']['max']['celsius'] + '℃ ') except: self.temperature_max.append(' max - ℃ ') try: self.temperature_min.append(' min ' + w['temperature']['min']['celsius'] + '℃ ') except: self.temperature_min.append(' min - ℃ ') def show_weather(self): self.get_weather() date = ['今日 ', '明日 ', '明後日 '] r = '' for i in range(3): try: r = r + date[i] + self.weather[i] + self.temperature_max[i] + self.temperature_min[i] + '\n' except: continue return(r) if __name__ == "__main__": input_text = '函館' city_data = GetPlaceData() city_dict = city_data.get_city() if input_text in city_dict: r = GetWeatherData(city_dict[input_text]) reply_text = r.show_weather() print(reply_text)

実行結果は(isseiyaguchi) isseiyaguchi@IsseinoMacBook-Pro chatbot % python3 weathergetter.py
(isseiyaguchi) isseiyaguchi@IsseinoMacBook-Pro chatbot %
となります。
ちなみに成功した場合、出力結果は

今日 晴のち曇 max - ℃ min - ℃ 明日 曇のち晴 max 6℃ min 0℃ 明後日 晴時々曇 max - ℃ min - ℃

と出るそうです。

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

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

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

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

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

ikapy

2021/09/02 04:58

PyCharmの様なIDEを入れて、デバグしたらいかがでしょうか。 ちょっと自分がPyCharmでデバグ実行したら、input_text が[]でした。これでは何も出ません。 また、b = bs4.BeautifulSoup(self.res.text, 'xml').select('city') で、textに'city'が見つかりませんでした。
Issei.Yaguchi

2021/09/02 05:36

色々試し、調べてみた結果、私が取得しようとしていたlivedoorの天気情報のサービスが2020年7月で提供を終了していたみたいです。すみません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問