をデコード:私はその上に次のコードを実行していますJSON/Pythonの - 私は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
を:
私は次のエラーを取得する:
この行でTypeError: string indices must be integers
:
esx_host = dstor['ESXi_Host']
私はそれが整数を期待していることを理解しています。私は
'json.loads'
代わりの
'json.load'
で下塗りし、さらにその後、
'(json_file.read())'
代わりの
'(json_file)'
で下塗りした場合の読みから、私はしかし私がやっていましたそれはstrinとしてファイルを読み込みますgではなく、整数の代わりに文字列の解析が可能です。なぜこれは機能しませんでしたか?
私は、単一の文字列が問題になるとは思わなかった。エラーmsgは "整数"を混乱させます。私は2つの文字列が実際に分割されるように書式設定を修正する方法を理解するのに苦労しています。 ESXiホスト/データストアをjson形式でプルするスクリプトは、ホスト/データストア名をプライマリキーにします。 dynamoDBの場合は、 "ESXi_Host"と "datastore"のラベルを主キーとして、対応する名前をキー値として持つ必要があります。これは私が思ったよりも難しいことが分かっています。私はvsphereからデータを取り出し、それを修正しようとしているスクリプトに戻ってきます。再度、感謝します! – tnunu
整数に関するエラーは間違った反復に由来します。キーを繰り返し、キーは文字列、文字列は整数インデックスのみを持ちます。 – lejlot