Есть кусок кода со словарем 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)