0

このスタックオーバーフローの回答を参照しています。

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

どんな助けでも大歓迎です。

info_type および movie_info テーブルに対するUPDATE 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 スクリプトにあります。前に述べたように、この問題をデバッグするための助けをいただければ幸いです。

4

2 に答える 2

0

問題はSNDT_STARTタグの定義にあります。以下の差分を参照して、サウンドトラックのインポートの問題を修正してください。

diff my-imdbpy2sql.py imdbpy2sql.py
796c796
< SNDT_START = ('SOUNDTRACKS', '=============', '', '', '')
---
> SNDT_START = ('SOUNDTRACKS LIST', '================', '', '', '')
于 2015-07-06T18:24:10.873 に答える
0

何が起こっているのかを理解するための最良のオプションは、コマンドの出力を保存し2>&1 | tee imdbpy2sql-output.log、コマンド ラインの最後に追加することです (Linux システムの場合)。

スピードアップするには、サウンドトラック ファイルをディレクトリに残すだけです。

于 2015-07-05T08:47:37.597 に答える