質問
基本的には、立ちたいと思っていまAPIをwww.thetvdb.com Python.現在のコードです こちらの.
でグラブからのデータのAPIとしてくださいますようお願いてのデータをなんとから利用可能となるように行うこと:
print tvdbinstance[1][23]['episodename'] # get the name of episode 23 of season 1
の"ベスト"への抽象データの Tvdb()
クラス?
私も使って拡張 Dict()
自動的に作成したサブdicts(いなにができる x[1][2][3][4] = "something"
くどうしていくべきなのかについて if x[1].has_key(2): x[1][2] = []
など)
しか存のデータによって self.data[show_id][season_number][episode_number][attribute_name] = "something"
このた大丈夫なのか確認す x[3][24]
したがって存在しない(いなかったのseason_not_foundます。
現在このデータを用いクラス ShowContainer
, Show
, Season
や Episode
.一つひとつが、非常に基本的な辞、私は簡単に追加の機能の search()
機能 Show()
など)を行います。それぞれ __setitem__
, __getitem_
や has_key
.
この作品は主に細かいチェックイン可能な場合、表示する季節です self.data
辞書名またを設定しない場合は raise season_not_found
.きのチェックインも Season()
場合にはその話です。
現在の問題での発表としての辞がないすべての機能、がんを上書きする __getitem__
や __setitem__
機能する再帰的に誤って電話 __getitem__
(せんだの Dict
クラスの原因となりま問題があります)。
その他の若干の問題はデータの追加を辞くりの Dict
方法( self.data[seas_no][ep_no]['attribute'] = 'something'
).見 _setItem
や _setData
.なもので、現在のみ読み取り専用APIインタフェースのAPIのユーザだけがえのデータの取得は、追加)するが、でも...エレガントです。
ると思うシリーズの授業システムは最も優れた方がいいような優れた考え方を格納するためのデータはもらえますか?というの ShowContainer
/etcクラス Dict
原因です。
解決
OK、必要なものは classobj
からの新しいモジュールです。ることができますの構築例外クラスを動的に(classobj
文字列を引数としてのクラス名)となります。
import new
myexc=new.classobj("ExcName",(Exception,),{})
i=myexc("This is the exc msg!")
raise i
このす:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
__main__.ExcName: This is the exc msg!
覚えていることが可能ですのクラス名を通して:
self.__class__.__name__
なので、その後の文字列の難号化および結合、対応することができるでしょうを得る適切な例外クラス名をクラスオブジェクトを使用する名前をあげる例外です。
P.S.-できるものを文字列が推奨されていません。
raise(self.__class__.__name__+"Exception")
他のヒント
なぜ使用しないでSQLite?あい支援をPythonで書きSQL文をデータを取得します。こちらはPythonのdocsのための sqlite3
したいという場合などに使用SQLiteができるようにな配列のdicts.
episodes = []
episodes.append({'season':1, 'episode': 2, 'name':'Something'})
episodes.append({'season':1, 'episode': 2, 'name':'Something', 'actors':['Billy Bob', 'Sean Penn']})
この追加のメタデータへの記録を検索で非常に簡単に
season_1 = [e for e in episodes if e['season'] == 1]
billy_bob = [e for e in episodes if 'actors' in e and 'Billy Bob' in e['actors']]
for episode in billy_bob:
print "Billy bob was in Season %s Episode %s" % (episode['season'], episode['episode'])
そして、似たような、過去に使用メモリ内のXML文書として、汚れた階層的データベース保管します。できる店がコラボレーション/季節の話としての要素が入れ子を適切に、属性のこれらのことxml属性のです。を利用することができXQueryに情報を出ていきます。
注意: したらいいと思います。Pythonんのでどうなるかはわからないおxmlの支援なのだと思います。
注2: してくださいprofileこんな大人に比べて遅解決まっています。が十分に行っているのだとかも大量処理してXMLと思いきます。
ったり下がったりよくわからないこと。
こんな簡単チェックの場合、x[3][24]は存在しない(いなかったのseason_not_found例外)
あうという に:
>>>x={}
>>>x[1]={}
>>>x[1][2]={}
>>>x
{1: {2: {}}}
>>> 2 in x[1]
True
>>> 3 in x[1]
False
この問題。
Bartosz/明らかに"こたえがありませんでした簡単チェックの場合、x[3][24]は存在しない"
x['some show'][3][24]
リーシーズン3、第24"の一部の表示"になっています。がなかった場合はシーズン3、といった疑似て辞めtvdb_seasonnotfoundれば、"もの"が存在しない、それをtvdb_shownotfound
現システムのシリーズ、 __getitem__
-チェックショー if self.seasons.has_key(requested_season_number)
, は、旬のクラスチェック if self.episodes.has_key(requested_episode_number)
います。
この作品でもあるように多くの繰り返しコード(各クラスは、基本的に同じものを異なるエラー)