I have the following dictionary:
info_processos = { '2019.491429': {"classe": "apelação", "dias_vista": 11}, '2020.714034': {"classe": "habeas corpus", "dias_vista": 8}, '2015.695102': {"classe": "agravo de instrumento", "dias_vista": 17}, '2012.628045': {"classe": "apelação", "dias_vista": 32}, '2017.462447': {"classe": "recurso em sentido estrito", "dias_vista": 9}, '2018.518281': {"classe": "apelação", "dias_vista": 4}, }
The keys are the protocols numbers (‘2019.491429’, ‘2020.714034’, ‘2015.695102’, etc.) while the values are a subdictionary which has 2 keys (‘classe’ and ‘dias_vista’).
I want to create a new pair “prorrogado”: “sim” for the keys which have the value from “dias_vista” equal or above 10 and for the others “prorrogado”: “não”.
I have tried using this loop method:
for key, value in info_processos.items(): if info_processos(value["dias_vista"] >= 10): info_processos.update({key: {"prorrogado": "Sim"}}) info_processos.update({key: {"prorrogado": "Não"}})
But it returned "TypeError: 'dict' object is not callable"
.
How can I solve it?
Advertisement
Answer
Just do:
import pprint info_processos = { '2019.491429': {"classe": "apelação", "dias_vista": 11}, '2020.714034': {"classe": "habeas corpus", "dias_vista": 8}, '2015.695102': {"classe": "agravo de instrumento", "dias_vista": 17}, '2012.628045': {"classe": "apelação", "dias_vista": 32}, '2017.462447': {"classe": "recurso em sentido estrito", "dias_vista": 9}, '2018.518281': {"classe": "apelação", "dias_vista": 4}, } for key, inner in info_processos.items(): inner["prorrogado"] = "Sim" if inner["dias_vista"] >= 10 else "Não" pprint.pprint(info_processos)
Output
{'2012.628045': {'classe': 'apelação', 'dias_vista': 32, 'prorrogado': 'Sim'}, '2015.695102': {'classe': 'agravo de instrumento', 'dias_vista': 17, 'prorrogado': 'Sim'}, '2017.462447': {'classe': 'recurso em sentido estrito', 'dias_vista': 9, 'prorrogado': 'Não'}, '2018.518281': {'classe': 'apelação', 'dias_vista': 4, 'prorrogado': 'Não'}, '2019.491429': {'classe': 'apelação', 'dias_vista': 11, 'prorrogado': 'Sim'}, '2020.714034': {'classe': 'habeas corpus', 'dias_vista': 8, 'prorrogado': 'Não'}}
The use of update
is preferred for multiple keys or another dictionary.