Oke Teman-teman, saya baru mengenal Python.

Saya sudah mulai menggunakannya di tempat kerja untuk menanyakan AWS dengan Boto3

Tugas pertama saya adalah membuat skrip untuk meminta pengguna di AWS dengan MFA, skrip awal berfungsi dan mengembalikan semua pengguna yang tidak memiliki Perangkat MFA, sangat sederhana.

Yang ingin saya lakukan adalah mengekspor daftar ke file JSON sehingga saya dapat menggunakan data dalam aplikasi Angular untuk menampilkan laporan.

Ketika saya menjalankan kode, saya mendapatkan output JSON tetapi itu salah, tidak ada koma dan menutup JSON setelah setiap objek alih-alih membuat output JSON tunggal yang lengkap.

Kode saya adalah sebagai berikut:

import json
# boto code here

for user in iam.list_users()['Users']:
    mfa = iam.list_mfa_devices(UserName=user['UserName'])
    if len(mfa['MFADevices']) == 0:
        q = []

        q.append({"account": item['alias'], "Username": 
user['UserName'], "MFA": "No MFA Enabled"})
        print json.dumps(q, indent=4)

Format hasil adalah:

[
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "account"
  }
]
[
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "account"
  }
]
0
Matthew White 8 Agustus 2017, 13:05

2 jawaban

Jawaban Terbaik

Ada banyak format JSON yang valid. Salah satunya adalah daftar dengan kamus:

[ {}, {} ]

Saya sarankan Anda mencoba ini:

import json
# boto code here
q = []
for user in iam.list_users()['Users']:
    mfa = iam.list_mfa_devices(UserName=user['UserName'])
    if len(mfa['MFADevices']) == 0:
        q.append({"account": item['alias'], "Username": 
user['UserName'], "MFA": "No MFA Enabled"})

print json.dumps(q, indent=4)
1
Anton vBR 8 Agustus 2017, 10:09

Hampir berhasil, tetapi tampaknya menduplikasi dan mengalikan hasil membuat daftar besar

[
 {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
 }
]
[
 {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
 }, 
 {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
 }
]
[
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
  }, 
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
  }, 
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
  }
]
[
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
  }, 
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
  }, 
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
  }, 
  {
    "Username": "Username", 
    "MFA": "No MFA Enabled", 
    "account": "Account"
  }
]
0
Matthew White 8 Agustus 2017, 10:17