运行imdbpy2sql.py后mysql缺少音轨信息

时间:2015-06-24 13:58:51

标签: python mysql python-2.7 imdb imdbpy

我正在引用此stackoverflow答案。

https://stackoverflow.com/a/20948609/4891914

我无法评论它,因为我的声誉不高于50.我使用了确切的代码,但得到了这个错误:

Traceback (most recent call last):
  File "search.py, line 47, in <module>
    print inglorious['soundtrack']
  File "/usr/local/lib/python2.7/dist-packages/imdb/utils.py", line 1469, in __getitem__
    rawData = self.data[key]
KeyError: 'soundtrack'

我也试过这个变种:

from imdb import IMDb
ia = IMDb('sql', uri='mysql://username:password@localhost/imdb')
inglorious = ia.search_movie('Inglorious Basterds')[0]
ia.update(inglorious, info=['soundtrack'])
soundtrack = inglorious.get('soundtrack')
print soundtrack

并打印“无”。当imdbpy2sql.py被运行时,文件soundtracks.list.gz确实存在于所有其他imdb文件所在的目录中。我确实在imdb.com上验证了该电影是否存在音轨。

http://www.imdb.com/title/tt0361748/soundtrack?ref_=tt_trv_snd

非常感谢任何帮助。

UPDATE 对info_type和movie_info表进行MySQL查询;

SELECT * FROM info_type WHERE info='alternate versions' OR info='goofs' OR info='crazy credits' OR info='soundtrack' OR info='quotes' OR info='trivia';

  id | info
  -----------------------
  11 | alternate versions
  12 | crazy credits
  13 | goofs
  15 | quotes
  14 | soundtrack
  17 | trivia

SELECT COUNT(*) FROM movie_info WHERE info_type_id=11;
  COUNT(*)
  19716
SELECT COUNT(*) FROM movie_info WHERE info_type_id=12;
  COUNT(*)
  21158
SELECT COUNT(*) FROM movie_info WHERE info_type_id=13;
  COUNT(*)
  222002
SELECT COUNT(*) FROM movie_info WHERE info_type_id=14;
  COUNT(*)
  0
SELECT COUNT(*) FROM movie_info WHERE info_type_id=15;
  COUNT(*)
  693707
SELECT COUNT(*) FROM movie_info WHERE info_type_id=17;
  COUNT(*)
  531702

所以问题可能在于imdbpy2sql.py脚本。如前所述,任何调试帮助都将非常感谢。

2 个答案:

答案 0 :(得分:0)

了解正在发生的事情的最佳选择是存储命令的输出,在命令行的末尾添加2>&1 | tee imdbpy2sql-output.log(在Linux系统上)。

为了加快速度,您可以将音轨文件保留在目录中。

答案 1 :(得分:0)

问题在于SNDT_START标记的定义。请参阅下面的差异来纠正音轨导入问题。

diff my-imdbpy2sql.py imdbpy2sql.py
796c796
< SNDT_START = ('SOUNDTRACKS', '=============', '', '', '')
---
> SNDT_START = ('SOUNDTRACKS LIST', '================', '', '', '')