1. Ich habe die dem Stadtnamen entsprechende Stadtnummer in eine city.py-Datei eingefügt und diese Nummer verwendet, um die Daten im China Weather Network abzufragen
Ein Teil des Datenformats ist wie folgt:
<code>city = { '北京': '101010100', '海淀': '101010200', '朝阳': '101010300', '顺义': '101010400', '怀柔': '101010500', '通州': '101010600', '昌平': '101010700', '延庆': '101010800', '丰台': '101010900', '石景山': '101011000', '大兴': '101011100', '房山': '101011200', '密云': '101011300', '门头沟': '101011400', '平谷': '101011500', </code>
Hier ist mein Code
<code># -*- coding:utf-8 -*- import urllib3 import json from city import city cityname = input('您想查询哪个城市的天气?\n') citycode = city.get(cityname) if citycode: url = ('http://www.weather.com.cn/data/cityinfo/%s.html'%citycode) content = urllib3.urlopen(url).read() print(content) </code>
Ausführungsfehler lautet:
<code>D:\learnpy\weather python weather.py 杭州 Traceback (most recent call last): File "weather.py", line 7, in <module> cityname = input() EOFError </code>
Welcher Schritt ist schiefgelaufen?
1. Ich habe die dem Stadtnamen entsprechende Stadtnummer in eine city.py-Datei eingefügt und diese Nummer verwendet, um die Daten im China Weather Network abzufragen
Ein Teil des Datenformats ist wie folgt:
<code>city = { '北京': '101010100', '海淀': '101010200', '朝阳': '101010300', '顺义': '101010400', '怀柔': '101010500', '通州': '101010600', '昌平': '101010700', '延庆': '101010800', '丰台': '101010900', '石景山': '101011000', '大兴': '101011100', '房山': '101011200', '密云': '101011300', '门头沟': '101011400', '平谷': '101011500', </code>
Hier ist mein Code
<code># -*- coding:utf-8 -*- import urllib3 import json from city import city cityname = input('您想查询哪个城市的天气?\n') citycode = city.get(cityname) if citycode: url = ('http://www.weather.com.cn/data/cityinfo/%s.html'%citycode) content = urllib3.urlopen(url).read() print(content) </code>
Ausführungsfehler lautet:
<code>D:\learnpy\weather python weather.py 杭州 Traceback (most recent call last): File "weather.py", line 7, in <module> cityname = input() EOFError </code>
Welcher Schritt ist schiefgelaufen?
Der
EOFError
Fehler liegt daran, dass ein unerwartetes Ende aufgetreten ist. Dies wird als sublime
Fehler angesehen. Wenn Sie ihn beheben möchten, können Sie ihn hier lesen
Python interaktiv aus Sublime Text 2 ausführen
Außerdem schlage ich vor, dass Sie requests
verwenden. Die urllibx
-Serie ist zu betrügerisch. Ich habe Ihren Code geändert und er ist grundsätzlich verwendbar
<code>import json import requests from city import city cityname = input('您想查询哪个城市的天气?\n') citycode = city[cityname] if citycode: url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode) content = requests.get(url) string = content.text.encode(content.encoding).decode("utf-8") print(json.dumps(json.loads(string), ensure_ascii=False, indent=4)) </code>
Ausgabe
<code>您想查询哪个城市的天气? 北京 { "weatherinfo": { "ptime": "18:00", "weather": "晴", "cityid": "101010100", "temp2": "16℃", "temp1": "-2℃", "city": "北京", "img2": "d0.gif", "img1": "n0.gif" } } </code>
Verwenden Sie Sunlime-Text zum Bearbeiten von Code? Sie können Ihren Code mit IDLE oder Pycharm ausprobieren, um zu sehen, ob Sie Ergebnisse erzielen können.
Versuchen Sie, die Eingabefunktion in sys.stdin.readline() zu ändern
<code class="python">import sys city = sys.stdin.readline()[:-1:] # readline函数的返回值会包括换行符</code>