【问题标题】:mysql missing soundtrack information after running imdbpy2sql.pymysql 在运行 imdbpy2sql.py 后缺少音轨信息
【发布时间】:2015-09-10 18:42:39
【问题描述】:

我正在参考这个 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 MySQL 查询 info_type 和 movie_info 表;

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 脚本上。如前所述,我们将不胜感激任何调试此问题的帮助。

【问题讨论】:

    标签: python mysql python-2.7 imdb imdbpy


    【解决方案1】:

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

    为了加快速度,您可以将配乐文件留在目录中。

    【讨论】:

    • 感谢您指出我只需要配乐文件即可加快此过程。我用决议回答了这个问题。如果您希望将此作为错误提交,请告诉我。
    • 太棒了!感谢您指出了这一点。没问题,我会提交一个错误提醒自己尽快修复它。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2014-01-23
      • 2015-12-03
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 2010-10-11
      • 1970-01-01
      • 2016-08-25
      • 1970-01-01
      相关资源
      最近更新 更多