私はしばらくPythonの基礎を研究し、データ解析のためにmysql
に戻りました。今、私はOOPをPythonのやり方で学びたいと思っていますが、クラス、オブジェクト、およびその属性に関するすべての情報を読んでいます。私は実験の途中で道に迷って方向を探しています。データのOOPワークフロー
私はPythonモジュールciscoconfparse
を使用し、すべてのインターフェイスを読み込み、スプレッドシートを経由して各インターフェイスをフィルタリングし、必要なデータ(サプライヤ)を取得します。
dict = {
'Customer' : 'customer1',
'supplier-con' : 'id823985',
'hostname' : 'router01',
'interface' : 'gig0/1',
'subinterface' : '101',
'dot1q' : '111',
'qinq' : '10101'
}
ツリーワイズ関係表示する:
キーは以下の値なしの例のようになります。
Customer 1 : customer1
----supplier-con : id823985
-------hostname : router 1
----------interface : gi0/1
--------------subinterface : 101
--------------subinterface : 111
Customer 1 : customer1
----supplier-con : id45223
-------hostname : router 5
----------interface : gi0/3
--------------subinterface : 107
--------------subinterface : 888
Customer 2 : customer2
----supplier-con : id625544
-------hostname : router 2
----------interface : gi0/2
--------------subinterface : 202
--------------subinterface : 222
を私は次のようなデータを持つことができる例として
インターフェイスが複数のサブインターフェイスで複数回使用されていることがわかります。 これはまた、ホスト名をカウントし、途中の他の詳細のためになる可能性があります。
メモリ内の50000エントリを処理するにはどのような方法が考えられますか?あるいは、私はデータベースの方がいいですか?
私はdict-in-dictsを作成する方法を知っていますが、実際のオブジェクトを使って互いの関係を作成する方法は分かりません。
質問に[私の答えは(_stackoverflow.com/a/15420716/355230)[_は4つ以上の値のセットを格納するための最良のデータ構造ですか?_](http: //stackoverflow.com/questions/15418386/what-is-the-best-data-structure-for-storing-a-set-of-four-or-more-values)それぞれのユニークな値ごとにルックアップテーブルを作成するデータベース内のフィールド(必要な場合および必要な場合) – martineau
また、鍵は、あなたが言及したdict-in-dictsのようなコンテナである値にlist-in-dictsとして関連付けることができることに注意してください。例えば、キー 'サブインタフェース'の値はa '['101'、 '111']'のような項目のリスト、あるいは辞書のリストさえあれば、それらの辞書はデータ構造内の他の要素になります。 Pythonでは参照カウントが行われるため、辞書のデータは参照されるたびに倍になりません。 – martineau
Martineauありがとうございました。これらは私が仕事をすることができる非常に良い答えです。特によく書かれたCSVの例です。それは私が試してみたいことです。 – Gaston