次のようなjson形式のファイル「datastores.json」があります。
{
"{'ESXi_Host': 'elvis.lab.vsphere.com'}": {
"elvis.data": {
"capacity": 293131517952,
"uuid": "57431578-630f1322-7bf2-00212883a5b0",
"vmfs_version": "5.60",
"ssd": false,
"extents": [
"mpx.vmhba1:C0:T1:L0"
],
"local": true
その上で次のコードを実行しています。
import json
with open("C:\PyVmomi_out\\datastores.json") as json_file:
datastores = json.loads(json_file.read())
for dstor in datastores:
esx_host = dstor['ESXi_Host']
datastore = dstor['datastore']
次のエラーが表示されます。
TypeError: string indices must be integers
この行で:
esx_host = dstor['ESXi_Host']
整数を期待していることを理解しています。私が行っていた読書から、私が下塗りした場合でも
'json.loads'
それ以外の
'json.load'
また、下塗りされました
'(json_file.read())'
それ以外の
'(json_file)'
次に、ファイルを文字列として読み取り、整数の代わりに文字列の解析を許可します。なぜこれがうまくいかなかったのですか?