Добавить в список делает новую строку каждый раз? - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь получить каждое вхождение, найденное в выводе 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"]
...