1.我在一份city.py 文件中收录了城市名字对应的城市编号,并用这个编号去中国天气网查询数据
部分数据格式是这样的:
city = {
'北京': '101010100',
'海淀': '101010200',
'朝阳': '101010300',
'顺义': '101010400',
'怀柔': '101010500',
'通州': '101010600',
'昌平': '101010700',
'延庆': '101010800',
'丰台': '101010900',
'石景山': '101011000',
'大兴': '101011100',
'房山': '101011200',
'密云': '101011300',
'门头沟': '101011400',
'平谷': '101011500',
下面是我的代码
# -*- 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)
运行报错 说:
D:\learnpy\weather
python weather.py
杭州
Traceback (most recent call last):
File "weather.py", line 7, in <module>
cityname = input()
EOFError
究竟哪一步出了问题呢?
EOFError
的错误是因为遇到了不期望的结尾, 这算是一个sublime
的 bug, 想解决可以看这里Running Python interactively from within Sublime Text 2
另外建议你用
requests
,urllibx
系列太坑爹, 改了下你的代码, 基本可用输出
你用的是不是sunlime text编辑代码的?可以把你的代码用IDLE或者pycharm之类的试试,看看能不能执行出结果。
尝试一下把input函数换成sys.stdin.readline()