@DrPalmer

Как правильно зациклить изменения словаря?

Есть кусок кода со словарем vms[service]. Я так понимаю, что переменную vms лучше заменить какой-нибудь., т.к. переменная пытается стать словарем? И вопрос, как лучше тогда это написать, ну т.е. по какой лучше формуле написать этот отрывок, чтобы он меньше был похож на говно..?
vms[service] = {'language': language, 'memory': vm['memory'], 'disk': vm['disk'], 'cpu': vm['cpu'], 'cpuNumber': vm['cpuNumber'], 'vms_exist_updated': 0, 'vms_required': 0, 'max_index': number, 'nodes_used': {} }
TypeError: 'str' object does not support item assignment


import requests
import json
import re

response = requests.get('http://127.0.0.1/asl_real.json')
asl_vms = json.loads(response.text)
vms = {}
res_list = {'cpu', 'cpuNumber', 'disk', 'memory'}
req_language = {'java', 'go'}
nodes = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0}

def check_partmrs(vms, language, service, number):
    for vm in asl_vms:
        if service not in vms:
            vms[service] = {'language': language, 'memory': vm['memory'], 'disk': vm['disk'], 'cpu': vm['cpu'], 'cpuNumber': vm['cpuNumber'], 'vms_exist_updated': 0, 'vms_required': 0, 'max_index': number, 'nodes_used': {} }
        else:
            for res in res_list:
                if vm[res] > vms[service][res]:
                    vms[service][res] = vm[res]
            if index > vms[service]['max_index']:
                vms[service]['max_index'] = index
        vms[service][increment] += 1
    return vms[service]

p = check_partmrs('vms', 'language', 'service', 'number')
print(p)
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@PavelMos
for vm in asl_vms:
        if service not in vms:
            vms[service] = {'language': language, 'memory': vm['memory'], 'disk': vm['disk'], 'cpu': vm['cpu'], 'cpuNumber': vm['cpuNumber'], 'vms_exist_updated': 0, 'vms_required': 0, 'max_index': number, 'nodes_used': {} }

Откуда берётся сервис, если для перебора используется vm ? Фикс - нашёл.

vms[service][increment] += 1
Переменная, Сервис, допустим, задана , а Инкремент ?
asl_vms нормально получается в виде словаря ?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы