>백엔드 개발 >PHP 튜토리얼 >[도움을 요청하는 초보자] 인용사전에서 python3.5 오류가 발생했습니다.

[도움을 요청하는 초보자] 인용사전에서 python3.5 오류가 발생했습니다.

WBOY
WBOY원래의
2016-09-01 00:20:121511검색

1. city.py 파일에 도시 이름에 해당하는 도시 번호를 포함시키고 이 번호를 사용하여 중국 기상 네트워크의 데이터를 쿼리했습니다.
데이터 형식의 일부는 다음과 같습니다.

<code>city = {
    '北京': '101010100',
    '海淀': '101010200',
    '朝阳': '101010300',
    '顺义': '101010400',
    '怀柔': '101010500',
    '通州': '101010600',
    '昌平': '101010700',
    '延庆': '101010800',
    '丰台': '101010900',
    '石景山': '101011000',
    '大兴': '101011100',
    '房山': '101011200',
    '密云': '101011300',
    '门头沟': '101011400',
    '平谷': '101011500',
</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>

실행 오류 메시지:

<code>D:\learnpy\weather                       
 python weather.py                      
杭州                                       
Traceback (most recent call last):       
  File "weather.py", line 7, in <module> 
    cityname = input()                   
EOFError
</code>

어떤 단계가 잘못되었나요?

답글 내용:

1. city.py 파일에 도시 이름에 해당하는 도시 번호를 포함시키고 이 번호를 사용하여 중국 기상 네트워크의 데이터를 쿼리했습니다.
데이터 형식의 일부는 다음과 같습니다.

<code>city = {
    '北京': '101010100',
    '海淀': '101010200',
    '朝阳': '101010300',
    '顺义': '101010400',
    '怀柔': '101010500',
    '通州': '101010600',
    '昌平': '101010700',
    '延庆': '101010800',
    '丰台': '101010900',
    '石景山': '101011000',
    '大兴': '101011100',
    '房山': '101011200',
    '密云': '101011300',
    '门头沟': '101011400',
    '平谷': '101011500',
</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>

실행 오류 메시지:

<code>D:\learnpy\weather                       
 python weather.py                      
杭州                                       
Traceback (most recent call last):       
  File "weather.py", line 7, in <module> 
    cityname = input()                   
EOFError
</code>

어떤 단계가 잘못되었나요?

EOFError 오류는 예상치 못한 결말이 발생했기 때문에 발생합니다. 이는 sublime 버그로 간주됩니다. 해결하려면 여기

를 읽어보세요.

Sublime Text 2 내에서 대화형으로 Python 실행

게다가 requests을 사용하는 것이 좋습니다. urllibx 시리즈는 너무 사기적이어서 코드를 변경했는데 기본적으로 사용 가능합니다

<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>

출력

<code>您想查询哪个城市的天气?
北京
{
    "weatherinfo": {
        "ptime": "18:00",
        "weather": "晴",
        "cityid": "101010100",
        "temp2": "16℃",
        "temp1": "-2℃",
        "city": "北京",
        "img2": "d0.gif",
        "img1": "n0.gif"
    }
}
</code>

sunlime text를 사용하여 코드를 편집하고 있나요? IDLE 또는 pycharm을 사용하여 코드를 시험해 보고 결과를 얻을 수 있는지 확인할 수 있습니다.

입력 함수를 sys.stdin.readline()으로 변경해 보세요

<code class="python">import sys
city = sys.stdin.readline()[:-1:] # readline函数的返回值会包括换行符</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.