用列表值遍历字典



我有一个字典,在其中一个字典中,它的键/值是一个列表。我正试图迭代这个dict来删除特殊字符(这是部分(,但当我得到这个值(这是一个列表(时,我不知道该怎么做。

这是我的座右铭:

{
"id_pessoa_ies": "3",
"cpf": "string",
"nome": "TESTE COM Ç E ESPACO E É",
"nome_social": "string",
"sexo": "string",
"data_nascimento": "26-11-2020",
"cor_raca": "Preta",
"estado_civil": "Test word here",
"municipio_naturalidade": "Test again",
"uf_naturalidade": "TEST",
"pais_nascimento": "string",
"docente_pessoa": [
{
"id_docente_ies": "string",
"matricula": "123456789",
"titulacao": "TEST",
"ano_ingresso": "2020",
"tipo_contrato": "string",
"tipo_vinculo": "TESTE COM Ç E ESPACO E É ARROBA @ #",
"id_unidade_lotacao": "1",
"situacao": "ACTIVATE"
}
]
}

这就是我目前所做的:

for key, value in mydict.items():
if key == 'docente_pessoa':
# what should I do here to iterate over 'docente_pessoa' to get it's values and
# apply my function 'text_to_it()' on it?
else:
text = text_to_id(value)
mydict.items[key] = text

我感谢你的帮助。

谢谢

因为它是一个列表,并且其中有一个dict,所以您可以像这样将其取出:

docente_pessoa_dict = value[0]

现在你有了一组新的值,我想你必须改变,所以你可以这样做:

for key, value in docente_pessoa_dict.items():
# do stuff with key and value

所以总结一下:

for key, value in mydict.items():
if key == 'docente_pessoa':
docente_pessoa_dict = value[0]
for key, value in docente_pessoa_dict.items():
# do stuff with key and value
else:
# do stuff with key and value

由于发布的代码给出了RuntimeError: dictionary changed size during iteration,因为你在迭代dict时更改了值,这与这个问题完全无关,所以你必须找到一种方法来复制键,然后更改值。

您可以简单地将dict转换为list,然后更改value:

for key in list(mydict):
if key == 'docente_pessoa':
docente_pessoa_dict = mydict[key][0]
for docente_pessoa_dict_key, docente_pessoa_dict_value in docente_pessoa_dict.items():
text = text_to_id(docente_pessoa_dict_value)
mydict[key][0][docente_pessoa_dict_key] = text 
else:
text = text_to_id(mydict[key])
mydict[key] = text

最新更新