How can this be done or through which library is easier ? I get a list of dictionaries and I want to take the data from the "Client" and overwrite it so that in the future I can write to xlsx without any problems. And it would probably be more correct to recreate the list of dictionaries
list_1 = [{
"Object": "info",
"subobject": "info",
"Name": "info",
"Ip": "info",
"Status": "info",
"Mac": "info",
"Worker": "info",
"Sn": "info",
"Client": [
"Name Max #4F6128"
"1 CH #F79646"
]
},
{
"Object": "info",
"subobject": "info",
"Name": "info",
"Ip": "info",
"Status": "info",
"Mac": "info"
"Worker": "info",
"Sn": "info",
"Client": [
"Name Alex #4F6128"
"3 CH #F79646"
"loi #92D050"
]
}]
as a result, I need to somehow get the data from the client and categorize it. You can still name by colors: #F79646,#4F6128,#92D050, #A00000" and it should turn out like this:
result = [{
"Object": "info",
"subobject": "info",
"Name": "info",
"Ip": "info",
"Status": "info",
"Mac": "info",
"Worker": "info",
"Sn": "info",
"#4F6128": "Name Max"
"#F79646": "1 CH"
"#92D050": "no"
"#A00000":"no"
]
},
{
"Object": "info",
"subobject": "info",
"Name": "info",
"Ip": "info",
"Status": "info",
"Mac": "info"
"Worker": "info",
"Sn": "info",
"#4F6128": "Name Alex"
"#F79646": "3 CH"
"#92D050": "loi"
"#A00000":"no"
}]
I tried using if, but I don't understand how to write the condition for checking correctly
CodePudding user response:
Code:
result = []
for d in list_1:
check_for = ['#F79646', '#4F6128', '#92D050', '#A00000']
new_d = {}
for k, v in d.items():
if k != 'Client':
new_d[k] = v
else:
for x in v:
if x.split()[-1] in check_for:
check_for.remove(x.split()[-1])
new_d[x.split()[-1]] = ' '.join(x.split()[:-1])
for y in check_for:
new_d[y] = 'no'
result.append(new_d)
print(result)
Output:
[{'#4F6128': 'Name Max',
'#92D050': 'no',
'#A00000': 'no',
'#F79646': '1 CH',
'Ip': 'info',
'Mac': 'info',
'Name': 'info',
'Object': 'info',
'Sn': 'info',
'Status': 'info',
'Worker': 'info',
'subobject': 'info'},
{'#4F6128': 'Name Alex',
'#92D050': 'loi',
'#A00000': 'no',
'#F79646': '3 CH',
'Ip': 'info',
'Mac': 'info',
'Name': 'info',
'Object': 'info',
'Sn': 'info',
'Status': 'info',
'Worker': 'info',
'subobject': 'info'}]