擅长:python、mysql、java
<p>正如前面的回答中所提到的,您需要在第一个循环之前声明列表构造,就像在每次实例更改之后,<code>raw_data</code>重新初始化为空列表一样,几乎不需要做任何调整</p>
<p>试试下面,它应该适合你</p>
<pre><code>s = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
s.verify_mode = ssl.CERT_NONE
userid = input("please enter your wbi userid (ex. abx@example.com):")
p = getpass.getpass("password:")
vcenter = ["vcenter-oracle.com","vcente.simplivity.com"]
# Place your list construct here
raw_data = []
# First loop
for instance in vcenter:
try:
c = SmartConnect(host=instance, user=userid, pwd=p, sslContext=s)
except Exception as e:
print(e)
continue
content = c.content
obj_ds = content.viewManager.CreateContainerView(content.rootFolder,[vim.Datastore],True)
# Second loop
for z in obj_ds.view:
vc_data = instance, z, int(z.summary.capacity/(1024*1024*1024)) ,int(z.summary.freeSpace/(1024*1024*1024))
raw_data.append(vc_data)
# Create the DataFrame and process the columns.
# Keep the DataFrame outside the for loop.
df = pd.DataFrame(raw_data, columns=['Vcenter', 'DS', 'TDS', 'FDS'])
print(df)
</code></pre>