mysql 在 运行 imdbpy2sql.py 之后缺少配乐信息
mysql missing soundtrack information after running imdbpy2sql.py
我引用了这个 Whosebug 答案。
我无法对此发表评论,因为我的声誉不高于 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
并打印 "None"。当 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 的查询 table;
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>&1 | tee imdbpy2sql-output.log
(在 Linux 系统上)。
为了加快速度,您可以将配乐文件留在目录中。
问题出在 SNDT_START
标签的定义上。请参阅下面更正音轨导入问题的差异。
diff my-imdbpy2sql.py imdbpy2sql.py
796c796
< SNDT_START = ('SOUNDTRACKS', '=============', '', '', '')
---
> SNDT_START = ('SOUNDTRACKS LIST', '================', '', '', '')
我引用了这个 Whosebug 答案。
我无法对此发表评论,因为我的声誉不高于 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
并打印 "None"。当 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 的查询 table;
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>&1 | tee imdbpy2sql-output.log
(在 Linux 系统上)。
为了加快速度,您可以将配乐文件留在目录中。
问题出在 SNDT_START
标签的定义上。请参阅下面更正音轨导入问题的差异。
diff my-imdbpy2sql.py imdbpy2sql.py
796c796
< SNDT_START = ('SOUNDTRACKS', '=============', '', '', '')
---
> SNDT_START = ('SOUNDTRACKS LIST', '================', '', '', '')