请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: crossin先生

Python 实战(5):拿来主义

[复制链接]

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-5-3 11:14:44 |显示全部楼层
AvyMiz 发表于 2016-5-2 15:12
先生,这个问题我也遇到了,movie里有id这个属性的。
因为正好是第20个,我一直以为是第一个循环里的问题 ...

通过异常处理,把会出错的代码写在try...except...里面,然后一般会在except里面把出错信息打印或保存下来,然后保证程序能跳过当前问题进入下一次循环
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

62

积分

注册会员

Rank: 2

发表于 2016-8-2 11:54:31 |显示全部楼层
执行没有错误,但是数据库中没有数据,也记得关闭数据库了
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-8-2 13:40:08 |显示全部楼层
yinxuexia1204 发表于 2016-8-2 11:54
执行没有错误,但是数据库中没有数据,也记得关闭数据库了

这个不好说,你要调试来定位。看看是输入的数据不对,还是添加数据库的方式有问题。
把输入的数据print出来检查。
还有就是先用简单的语句测试一下导入数据库是否正常
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

62

积分

注册会员

Rank: 2

发表于 2016-8-2 16:39:28 |显示全部楼层

请教,往数据库插入数据时遇到的报错,不明白咋错了


回复

使用道具 举报

0

主题

0

好友

62

积分

注册会员

Rank: 2

发表于 2016-8-2 16:48:28 |显示全部楼层
请教,往数据库中插入时,不知道哪里错了,感觉有单引号很正常
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-8-3 09:49:10 |显示全部楼层
yinxuexia1204 发表于 2016-8-2 16:48
请教,往数据库中插入时,不知道哪里错了,感觉有单引号很正常

光从你这一句话我也不知道哪里错了……
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

62

积分

注册会员

Rank: 2

发表于 2016-8-3 09:50:12 |显示全部楼层
按照老师说的加了start和count,可是执行后,只读到20条数据后就报错:urllib.error.HTTPError: HTTP Error 404: Not Found
这是为什么呀
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2016-8-3 09:54:01 |显示全部楼层
yinxuexia1204 发表于 2016-8-3 09:50
按照老师说的加了start和count,可是执行后,只读到20条数据后就报错:urllib.error.HTTPError: HTTP Error ...

404这是网页请求失败,没找到对应页面的报错。
你把问题分解开来,去调试定位,把每部分的中间数据输出出来,一部分一部分的排除问题,看哪里不对。不然没法知道哪出错了。
你这么问,真没法知道是什么问题
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

62

积分

注册会员

Rank: 2

发表于 2016-8-3 11:14:00 |显示全部楼层
crossin先生 发表于 2016-8-3 09:54
404这是网页请求失败,没找到对应页面的报错。
你把问题分解开来,去调试定位,把每部分的中间数据输出出 ...

已经找到问题,是取到的ip,第21个没有内容,直接访问也没有内容,找不到,我加了个异常处理,就没问题的,最终取到了249个数据,谢谢老师
回复

使用道具 举报

0

主题

0

好友

40

积分

新手上路

Rank: 1

发表于 2016-9-30 08:59:19 |显示全部楼层
先生,麻烦问一个问题
像前边有位同学说的有几部电影的ID是找不到的,我用了try except语句来处理这种异常
def add_movie(data):
    # print data
    movie = json.loads(data)
    # print movie
    try:
       db.insert('movie',
          id=int(movie['id']),
          title=movie['title'],
          origin=movie['original_title'],
          url=movie['alt'],
          rating=movie['rating']['average'],
          image=movie['images']['large'],
          directors=','.join([d['name'] for d in movie['directors']]),
          casts=','.join([c['name'] for c in movie['casts']]),
          year=movie['year'],
          genres=','.join(movie['genres']),
          countries=','.join(movie['countries']),
          summary=movie['summary'],
       )
       print movie['title']
    except:
       print 'ID is not found'

但是这样出现了一个问题,每次搜索到那个ID找不到的电影的,程序就会从第一部电影开始搜索,这样导致table movie的数据库有很多重复的电影
应该怎么解决,其实应该是在
下边的:
count = 0
for mid in movie_ids:
    # print count, mid
    response = urllib.urlopen('http://api.douban.com/v2/movie/subject/%s' % mid)
    data = response.read()
    add_movie(data)
    count += 1
    time.sleep(3)
加入某些语句,就是遇到ID找不到的电影,直接跳过,开始接下来的搜索,而不是重新开始,但是具体要添加什么语句,望指教,多谢了
回复

使用道具 举报

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

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

GMT+8, 2024-4-19 01:54 , Processed in 0.024867 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部