设为首页收藏本站

Crossin的编程教室

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

【Python 第46课】 查天气(4)

  [复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

61#
发表于 2018-8-30 10:51:27 |显示全部楼层
aruhuredo 发表于 2018-8-30 10:47
Crossin,你好。
我尝试将这个网页上的记录城市编码的数据(这个网页上共有349个城市)做整理,当作练习。
...

没有限制,除非超过内存大小,但应该不是这个问题
很可能还是你代码在处理上有些bug
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

62#
发表于 2018-8-30 22:08:54 |显示全部楼层
aruhuredo 发表于 2018-8-30 15:34
哦 又检查了下 发现数据是完整的
但次序好像和原始数据完全不一样,打乱了。。。
这也是我代码上的bug嘛

dict是无序的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

63#
发表于 2018-9-25 22:59:02 |显示全部楼层
Gen 发表于 2018-9-25 20:58
我是py3,前面的代码都没什么问题,print出来的都很正常,但最后write的时候就会报错,会新建一个city1.py ...

写入时候编码报错,但我无法判断你这个是什么问题

你尝试 open 里加上参数 encoding='utf8' ,不行gbk也试下
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

64#
发表于 2018-10-15 22:16:54 |显示全部楼层
marvinmi 发表于 2018-10-15 15:29
import urllib.request
import json

这个拿到的数据本来就不是json,例子里没这么写啊

输出带b,是bytes,要 .decode('utf8') 转成 str 类型
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

65#
发表于 2018-10-17 15:46:36 |显示全部楼层
amy0808 发表于 2018-10-16 13:39
http://m.weather.com.cn/data3/city.xml

This page contains the following errors:

不用理,因为它格式不是标准 html 或者 json。直接代码拿返回字符串出来看你就知道了
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

66#
发表于 2018-10-26 00:45:19 |显示全部楼层
zorro 发表于 2018-10-23 21:14
provinces=content1.split(',')
在这一步报错,TypeError: a bytes-like object is required, not 'str'
不 ...

前面加一行 content1 = content1.decode('utf8')
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

67#
发表于 2018-10-26 00:48:21 |显示全部楼层
yiminzheng 发表于 2018-10-25 17:16
打印出结果之后,发现原本city.py被修改了

网络read() 出来的结果要decode('utf8'),或者建议用 requests 模块

另外你没拿到code,肯定是最后的请求有问题,多加print看看是哪里不对

公众号回复 查天气,有篇关于这些错误的讨论文章
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

68#
发表于 2019-1-6 17:10:16 |显示全部楼层
yby15 发表于 2019-1-5 13:43
line="   '%s': '%s',\n"%(name,code) 老师为什么这里双引号和单引号要一起使用,不能只用外面的双引号吗, ...

里面的单引号就是需要单引号这个符号
因为你是要生成一段代码,这代码里需要单引号


json在传输数据时使用,要看双方的约定
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

69#
发表于 2019-1-18 21:24:54 |显示全部楼层
waterzoo 发表于 2019-1-18 18:15
求大神给一个能够在python3下能够运行的代码。我修改了其中一部分,但是还是报错。代码如下:
import urlli ...

py3取到的 content 要转一下

content = content.decode('utf8')
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

70#
发表于 2019-11-27 23:17:48 |显示全部楼层
PMCoding 发表于 2019-11-27 14:17
import urllib.request

url1 = 'http://m.weather.com.cn/data3/city.xml'

是的,这个方式的接口已经失效,可以公众号回复 查天气,里面有新的方法
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

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

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

GMT+8, 2024-5-3 01:01 , Processed in 0.030115 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部