2017-05-08 4 views
-6

私はスクリプトを使用したい100以上のスイッチまたはルータを持っています。"NameError"とはどういう意味ですか?

[ 
    { 
"ip" : "192.168.x.x", 
"device_type" : "hp_procurve" 
}, 

    { 
"ip" : "192.168.x.x", 
"device_type" : "cisco-ios" 
} 

] 

コードは罰金ですが、ときに私:私はこのようなJSONファイルでIPアドレスを挿入すると、メインのコードが正常に動作します...私はこれを好きにJSONファイル(devices.json)を変更しようとしました私はそれらをすべて見る結果を見て、どの結果がどのスイッチに属するのかを知ることはできません。

私はそれを100回の切り替えに使用したいと思いますが、その結果、誰にどの結果が属しているかを知ることはできません。

は、だから私はこれを試してみました:私は次のエラーを与える

devices = [switch101,switch102] 



switch101={ 
"ip" : "192.168.x.x", 
"device_type" : "hp_procurve" 
} 


switch102={ 
"ip" : "192.168.x.x", 
"device_type" : "cisco-ios" 
} 



stores = [str(switch101),str(switch102)] 

NameError: name 'switch101' is not defined** 
+0

これは現在のところ、Pythonの辞書(jsonファイルはどこにありますか?)です。あなたが探しているのはあなたの質問からはっきりしない。なぜ、my_switches = {'switch101':{"ip": "192.168.xx"、 "device_type": "hp_procurve"}、 'switch102':{"ip": " 192.168.xx "、" device_type ":" cisco-ios "}}'?最初に実際にこのデータを取得している場所を表示できますか? – roganjosh

答えて

1

はあなたが宣言する前にswitch101にアクセスしようとしているという事実であるかもしれないここでの問題のように思えますそれ。 (私は完全にここで何が起こっているか誤解していない限り)以下のコードは、あなたにそのエラーを与えるべきではありません。

switch101={ 
"ip" : "192.168.x.x", 
"device_type" : "hp_procurve" 
} 


switch102={ 
"ip" : "192.168.x.x", 
"device_type" : "cisco-ios" 
} 

devices = [switch101,switch102] 

をそれは、これはあなたがそれを変換したい場合は、あなたのデータを格納するための最良の方法ではないこと、しかし、可能です後でjsonに入る。代わりに、roganjosh's commentが示唆するように、辞書を直接保管しないでください。

my_switches = { 
       'switch101': {"ip" : "192.168.x.x", "device_type" : "hp_procurve"}, 
       'switch102': {"ip" : "192.168.x.x", "device_type" : "cisco-ios"} 
       } 
+0

最終的な構造がjsonに変換された場合、 "スイッチ"データは失われますか?私はOPが全体としてこのアプローチを使用すべきかどうか分からない。 – roganjosh

+0

ええ、私はあなたが意味するものを参照してください。しかし、OPの直面している問題のように思えるのは、「NameError」が何を意味するのか不明だということです。しかし、もう一度質問が完全にはっきりしていないので、私はそれをすべて間違って読むことができます。 – Marcy

+0

ええ、それは明らかに問題ではありません。私のポイントを明確にする。私はこれが、OPが現在のアプローチで直面しているエラーを分類すると考えていますが、長期的にやりたいことへの実行可能なルートを与えません。彼らが明確になっているかどうかを確認します:) – roganjosh

関連する問題