0
I次のコードを持っている:がどのように関数内のpythonの辞書に追加する
コードは以下の形式でvm
に対応付ける辞書
esx
を作成することになっている
def main():
content = si.RetrieveContent()
esx_vm = {}
search_index = si.content.searchIndex
for child in content.rootFolder.childEntity:
if hasattr(child, 'vmFolder'):
datacenter = child
vmFolder = datacenter.vmFolder
vmList = vmFolder.childEntity
for vm in vmList:
vmname = PrintVmInfo(vm)
if vmname is not None:
hostname = vmname
vm = si.content.searchIndex.FindByDnsName(None, hostname, True)
try :
ESX = vm.runtime.host.name
except :
pass
esx_vm.update({ESX:hostname})
print(esx_vm)
if __name__ == "__main__":
main()
:
{'esx1': 'vm1'}
しかし、 1つのキー値が{'esx1': 'vm1'}
で、すべてのesx:vm
マッピングが得られません。私は得ることを除いている:
{'esx1': 'vm1','esx2': 'vm2','esx3': 'vm3','esx4': 'vm4'}
のように。
辞書の正しい値を取得する方法についてアドバイスしますか?
Pythonはすべてインデントについてです。 'esx_vm.update({ESX:ホスト名})'行をインデントして内側のループ( 'vmList:'の 'for vm)で実行され、あなたはうまくいきます。 – hoefling