设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生
打印 上一主题 下一主题

【Python 第44课】 查天气(2)

  [复制链接]

0

主题

0

好友

8

积分

新手上路

Rank: 1

141#
发表于 2016-8-15 14:13:08 |只看该作者
老师好:

我碰到的问题是这样的:

# -*- coding: utf-8 -*-
import urllib2
import json
from city import city

cityname = raw_input("please input the city name:")
citycode = city.get(cityname)
if citycode:
    web = urllib2.urlopen('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode)
    content = urllib2.urlopen(web).read()
    print content



结果:
/System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 /Users/Karl_Gong/PycharmProjects/untitled/test2.py
please input the city name:武汉
Traceback (most recent call last):
  File "/Users/Karl_Gong/PycharmProjects/untitled/test2.py", line 10, in <module>
    content = urllib2.urlopen(web).read().decode('utf-8')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py", line 423, in open
    protocol = req.get_type()
AttributeError: addinfourl instance has no attribute 'get_type'

Process finished with exit code 1


我是在mac上面用pycharm运行的,能请老师帮忙看看是什么原因吗?
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

142#
发表于 2016-8-15 14:42:02 |只看该作者
gongkegongke1 发表于 2016-8-15 14:13
老师好:

我碰到的问题是这样的:

好吧……自己解决了……要把urllib2.urlopen()和read()分开写……
不知道为什么……有同学能解答一下吗……
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

143#
发表于 2016-8-15 14:46:15 |只看该作者
gongkegongke1 发表于 2016-8-15 14:42
好吧……自己解决了……要把urllib2.urlopen()和read()分开写……
不知道为什么……有同学能解答一下吗… ...

可能只是网络连接不好,没请求成功
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

144#
发表于 2016-8-15 15:46:24 |只看该作者
crossin先生 发表于 2016-8-15 14:46
可能只是网络连接不好,没请求成功

确实有可能,我们公司网络不好是出了名的……谢谢老师!
回复

使用道具 举报

0

主题

1

好友

114

积分

注册会员

Rank: 2

145#
发表于 2016-8-18 13:17:21 |只看该作者
crossin先生 发表于 2016-7-22 23:43
city.py 开头第一行也要加上 coding,因为代码里有中文。
如果你是windows,utf-8改成cp936 ...

先生求助...
用utf-8显示正常,但返回None; 用cp936显示乱码,返回值也是None...


#coding:utf-8

import urllib2, json
from city import city

yourcity = raw_input("你想查那个城市的天气?\n")
citycode=city.get(yourcity)

print yourcity, citycode[/code]
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

146#
发表于 2016-8-18 21:17:48 |只看该作者
抓取了天气,但发现天气状况和实际不符啊?啥原因?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

147#
发表于 2016-8-19 11:04:32 |只看该作者
august 发表于 2016-8-18 21:17
抓取了天气,但发现天气状况和实际不符啊?啥原因?

那个接口停止更新了。
新接口看 查天气1 里开头给的链接
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

148#
发表于 2016-8-19 11:07:20 |只看该作者
Phoestia 发表于 2016-8-18 13:17
先生求助...
用utf-8显示正常,但返回None; 用cp936显示乱码,返回值也是None...

city.py 开头用了什么编码,两个文件都要和系统编码一致,windows是cp936或者gbk
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

4

积分

新手上路

Rank: 1

149#
发表于 2016-8-22 00:38:41 |只看该作者
完全按照老师的方法,为什么会出现这个,望高手解惑.
Traceback (most recent call last):
  File "C:\Python27\2.py", line 5, in <module>
    from city import city
  File "C:\Python27\city.py", line 2
SyntaxError: Non-ASCII character '\xe5' in file C:\Python27\city.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

150#
发表于 2016-8-22 09:25:28 |只看该作者
coffee_cat 发表于 2016-8-22 00:38
完全按照老师的方法,为什么会出现这个,望高手解惑.
Traceback (most recent call last):
  File "C:\Pyth ...

city.py 开头没加编码申明。回帖里有说过一样的情况,你找下
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-4 09:35 , Processed in 0.028388 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部