Crossin的编程教室

标题: Windows【天气查询】无结果 [打印本页]

作者: cczztt    时间: 2018-7-20 18:32
标题: Windows【天气查询】无结果
# -*- coding: gbk -*-

from urllib import request
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 = request.urlopen(url).read()


# -*- coding: gbk -*-

city = {
    '北京': '101010100',
    '海淀': '101010200',
    '朝阳': '101010300',
在程序和city开头都加了coding的说明,但是查询还是没结果,详见下文。
C:\Users\Administrator\PycharmProjects\First_test\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/First_test/1.py
你想查哪个城市的天气?
北京

Process finished with exit code 0



作者: crossin先生    时间: 2018-7-20 22:52
你把gbk都改成utf8试下,不同版本windows编码会不同,而且也跟你的执行环境有关
作者: cczztt    时间: 2018-7-23 16:52
crossin先生 发表于 2018-7-20 22:52
你把gbk都改成utf8试下,不同版本windows编码会不同,而且也跟你的执行环境有关 ...

# -*- coding: utf-8 -*-

import json
from urllib import request

url1 = 'http://m.weather.com.cn/data3/city.xml'
content1 = request.urlopen(url1).read()

print(content1)

我试着抓省份列表的时候,抓回来的数据不能按gbk编码,这个咋办呢?

C:\Users\Administrator\PycharmProjects\First_test\venv\Scripts\python.exe C:/Users/Administrator/PycharmProjects/First_test/1.py
b'00|\xe7\x9c\x81,01|\xe5\x8c\x97\xe4\xba\xac,02|\xe4\xb8\x8a\xe6\xb5\xb7,03|\xe5\xa4\xa9\xe6\xb4\xa5,04|\xe9\x87\x8d\xe5\xba\x86,05|\xe9\xbb\x91\xe9\xbe\x99\xe6\xb1\x9f,06|\xe5\x90\x89\xe6\x9e\x97,07|\xe8\xbe\xbd\xe5\xae\x81,08|\xe5\x86\x85\xe8\x92\x99\xe5\x8f\xa4,09|\xe6\xb2\xb3\xe5\x8c\x97,10|\xe5\xb1\xb1\xe8\xa5\xbf,11|\xe9\x99\x95\xe8\xa5\xbf,12|\xe5\xb1\xb1\xe4\xb8\x9c,13|\xe6\x96\xb0\xe7\x96\x86,14|\xe8\xa5\xbf\xe8\x97\x8f,15|\xe9\x9d\x92\xe6\xb5\xb7,16|\xe7\x94\x98\xe8\x82\x83,17|\xe5\xae\x81\xe5\xa4\x8f,18|\xe6\xb2\xb3\xe5\x8d\x97,19|\xe6\xb1\x9f\xe8\x8b\x8f,20|\xe6\xb9\x96\xe5\x8c\x97,21|\xe6\xb5\x99\xe6\xb1\x9f,22|\xe5\xae\x89\xe5\xbe\xbd,23|\xe7\xa6\x8f\xe5\xbb\xba,24|\xe6\xb1\x9f\xe8\xa5\xbf,25|\xe6\xb9\x96\xe5\x8d\x97,26|\xe8\xb4\xb5\xe5\xb7\x9e,27|\xe5\x9b\x9b\xe5\xb7\x9d,28|\xe5\xb9\xbf\xe4\xb8\x9c,29|\xe4\xba\x91\xe5\x8d\x97,30|\xe5\xb9\xbf\xe8\xa5\xbf,31|\xe6\xb5\xb7\xe5\x8d\x97,32|\xe9\xa6\x99\xe6\xb8\xaf,33|\xe6\xbe\xb3\xe9\x97\xa8,34|\xe5\x8f\xb0\xe6\xb9\xbe'

Process finished with exit code 0



作者: crossin先生    时间: 2018-7-24 14:46
cczztt 发表于 2018-7-23 16:52
# -*- coding: utf-8 -*-

import json

print(content1.decode('utf8'))






欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5