设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 10593|回复: 3
打印 上一主题 下一主题

求救!查天气的编码问题

[复制链接]

2

主题

0

好友

28

积分

新手上路

Rank: 1

跳转到指定楼层
楼主
发表于 2017-12-4 16:59:54 |显示全部楼层 |倒序浏览
import urllib.request
areacode={}
f=open('areacode.py','a+')
f.write('areacode={')
url = ('http://m.weather.com.cn/data3/city.xml')
content = urllib.request.urlopen(url).read()
content=content.decode('utf-8')
provinces=content.split(',')
url1 = 'http://m.weather.com.cn/data3/city%s.xml'
for p in provinces[:3]:
    p_code=p.split('|')[0]
    url2=url1 % p_code
    content = urllib.request.urlopen(url2).read()
    content = content.decode('utf-8')
    city=content.split(',')
    for c in city:
        c_code = c.split('|')[0]
        url3 = url1 % c_code
        content = urllib.request.urlopen(url3).read()
        content = content.decode('utf-8')
        area=content.split(',')
        for a in area:
            date = a.split('|')
            code=date[0]
            name=date[1]
            areacode[name] = code
            print(name)
            f.write('%s:%s,\n'%(name,code))
f.write('}')
f.close()

以上是获取地区编号的代码,用的windows系统,加了编码转换,打印出来是汉子,运行没报错,但是储存结果的areacode.py全是乱码
而且之前的查天气部分也不能识别
areacode 查天气

回复

使用道具 举报

2

主题

0

好友

28

积分

新手上路

Rank: 1

沙发
发表于 2017-12-6 11:53:41 |显示全部楼层
TED 发表于 2017-12-4 21:14
虽然我不懂原因,但好像帮你找到解决方案了:

感谢,我把输出的这个储存结果文件上面加了行# -*- coding: GBK -*-
把调用它的天气程序上面也加了这行编码声明,调用就正常执行了
不过还是不懂为什么解码后正常运算出的结果,输出就成了GBK编码的文件了。。。。还是得补补基础书
回复

使用道具 举报

2

主题

0

好友

28

积分

新手上路

Rank: 1

板凳
发表于 2017-12-6 11:54:50 |显示全部楼层
crossin先生 发表于 2017-12-5 20:24
可以全部设成utf8,总之要保持一致。
pycharm设置参考这篇 https://zhuanlan.zhihu.com/p/26066151 ...

好的,感谢,我试试看
回复

使用道具 举报

2

主题

0

好友

28

积分

新手上路

Rank: 1

地板
发表于 2017-12-6 12:11:35 |显示全部楼层
。。。。没搞懂啊,就算全都设置成utf8,输出的结果依然是gbk格式的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-17 16:43 , Processed in 0.026990 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部