#天気予報機能の作り方が分かりません。
試してみたプログラム
Pyton
1import discord 2import urllib.request 3import json 4import re 5 6client = discord.Client() 7 8citycodes = { 9 "土浦": '080020', 10 "水戸": '080010', 11 "札幌": '016010', 12 "仙台": '040010', 13 "東京": '130010', 14 "横浜": '140010', 15 "名古屋": '230010', 16 "大阪": '270000', 17 "広島": '340010', 18 "福岡": '400010', 19 "鹿児島": '460010', 20 "那覇": '471010' 21} 22 23@client.event 24async def on_ready(): 25 print("logged in as " + client.user.name) 26 27@client.event 28async def on_message(message): 29 if message.author != client.user: 30 31 reg_res = re.compile(u"Bot君、(.+)の天気は?").search(message.content) 32 if reg_res: 33 34 if reg_res.group(1) in citycodes.keys(): 35 36 citycode = citycodes[reg_res.group(1)] 37 resp = urllib.request.urlopen('http://weather.livedoor.com/forecast/webservice/json/v1?city=%s'%citycode).read() 38 resp = json.loads(resp.decode('utf-8')) 39 40 msg = resp['location']['city'] 41 msg += "の天気は、\n" 42 for f in resp['forecasts']: 43 msg += f['dateLabel'] + "が" + f['telop'] + "\n" 44 msg += "です。" 45 46 await client.send_message(message.channel, message.author.mention + msg) 47 48 else: 49 await client.send_message(message.channel, "そこの天気はわかりません...") 50 51client.run("ここにトークン")
(トークンなどは入力済みです。)
エラーコード
logged in as DM Ignoring exception in on_message Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\site-packages\discord\client.py", line 343, in _run_event await coro(*args, **kwargs) File "C:\Users\user\AppData\Local\Programs\Python\Python39\tenkei.py", line 38, in on_message resp = json.loads(resp.decode('utf-8')) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 346, in loads return _default_decoder.decode(s) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "C:\Users\user\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 355, in raw_decode raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 2 column 1 (char 4)
#試してみたことなど
APIを探しました。ですが、エラーが出て終わりでした。
live door以外の使い方がネットに乗っておらず、失敗しました
#実行環境など
Atom 最新版
Pyton 3.9
discord.py
これ、質問内容の方向性では天気予報機能は作れませんよ。
予報情報をとってくるだけです。
タイトルを修正するか、質問をタイトルに合わせるかしてください。