设为首页收藏本站

Crossin的编程教室

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

Python 实战(5):拿来主义

[复制链接]

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-5-2 20:09 , Processed in 0.015945 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部