0

example.py これは、マルチレベルの辞書を持つ Python スクリプトです。

test_dict = {'path': '/home/user/user_name',
 'device1': {'IP': '10.10.10.10',
          'password': 'pwd1',
          'username': 'user1',
          'name':'USER_DEFINED'},
 'device2': {'IP': '11.11.11.11',
          'password': 'pwd2',
          'username': 'user2',
          'name':'USER_DEFINED_TEST'}
}

に存在する辞書を更新する別の python スクリプトを作成しました'example.py'。現在、オプション パーサーを介して、第 1 レベルの辞書 [例: パスとその値] を処理できます。python example.py --key path --value /home/user/user_name. SO、マルチレベルの辞書値の更新を処理するために。どうすれば最適化できますか? 手伝っていただけませんか ?

    Working :
    file_abs_path = "C://Test_Folder//example.py"
    module = imp.load_source('test_dict', file_abs_path)
    f_dict = module.test_dict
    if f_key != "":
       for key, value in f_dict.items():
         if key == f_key:
            f_dict[f_key] = f_value

parser.add_option("-k", "--key", dest="key",default="",help="")

parser.add_option("-v", "--value", dest="value",default="",help="")
f_key = options.key 
f_value = options.value

デバイス1の名前とデバイス2の名前を更新する場合、またはデバイス1の設定名である可能性があります。どうすれば最適化できますか?

4

1 に答える 1

0

example.pyこの場合、 の辞書を直接更新する必要はあまりないようです。を使用してファイルからデータを読み取るには、少し異なるアプローチを採用しますcPickle

example.pyファイルで、このスニペットを使用してデータを読み取ります-

import cPickle
with open(r"data.pk", "rb") as input_file:
  cPickle.load(d, input_file) 

このcPickleファイルに (別のスクリプトから) 書き込むには、

import cPickle
d = {
  'a': {'b': 5, 'c': 6},
  'd': {'e': 7, 'f': 8}
}
# Add some logic to dynamically update d
with open(r"data.pk", "wb") as output_file:
  cPickle.load(d, output_file) 
于 2016-11-18T07:19:08.763 に答える