Я пытаюсь получить каждое вхождение, найденное в выводе JSON, который находится в моем словаре, для добавления в список, но каждый раз, когда он находит другое вхождение, он создает новый список с добавлением нового. Я полагаю, что это может быть как-то связано с моим для l oop, но я не уверен.
Мой код:
def get_all_asset_groups():
path1 = "/api/3/asset_groups/?size=300"
url5 = server + path1
response = requests.request("GET", url5, headers=headers, verify=False)
data = response.json()
x = (json.dumps(data, indent=2, sort_keys=True))
server_owners_dict=dict()
owners= []
#populating the dictionary with the server owners
for i in data['resources']:
if 'id' in i and 'name' in i:
b = i['name'], i['id']
k = str(b)
if re.findall("'Server-Ownership-\w+', \w+", k):
matchedOwners = re.findall("'Server-Ownership-\w+', \w+", k)[0]
j = str(matchedOwners).strip().split()
server_owners_dict[j[0].replace('Server-Ownership-','')]=j[1]
with open(PATH, mode='w') as my_csv_file:
employee_writer = csv.writer(my_csv_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
employee_writer.writerow(['Server Name','Criticals'])
for owner in server_owners_dict:
url = server + "/api/3/asset_groups/" + str(server_owners_dict[owner]) + "/assets"
response = requests.request("GET", url, headers=headers, verify=False, params = {owner:server_owners_dict[owner]})
data = response.json()
for i in data['resources']:
url = server+ "/api/3/assets/" + str(i)
response = requests.request("GET", url, headers=headers, verify=False)
data = response.json()
if data['vulnerabilities']['critical'] > 0:
d = owner
owners.append(owner)
print(owners)
Вывод:
["'Bob',"]
["'Bob',", "'Bob',"]
["'Bob',", "'Bob',", "'Bob',"]
Что бы я хотел, чтобы это было:
["'Bob',","'Bob',","'Bob',"]
Кроме того, есть ли способ, которым я могу избавиться от этих дополнительных символов, чтобы иметь только:
["Bob", "Bob", "Bob"]