Olá Juliano, tudo bem com você?
Uma forma que podemos chegar ao resultado esperado, será percorrendo a lista de dicionários e validarmos cada valor para uma regra específica, ou seja:
- Os nomes conterão 14 dígitos e podemos fazer isso através de um fatiamento na string, pegando do primeiro dígito até o décimo quarto, lembrando que esse último dígito não é incluso.
- Já os valores, conterão 8 dígitos e terão de ser preenchidos com zero caso não tenha essa quantidade.
- Por fim, o cpf terá 11 dígitos e também realizaremos o fatiamento.
Em código ficará da seguinte forma:
input = [
{"name": "Maria Neusa de Aparecida", "cpf": "97905796671",
"state": "Sao Paulo", "value": "123"},
{"name": "Ricardo Fontes", "cpf": "44010762900",
"state": "Rio Grande do Sul", "value": "567"}
]
for i in range(len(input)):
nome = input[i].get("name", "Sem dados")
nome = nome[:14]
value = input[i].get("value", "Sem dados")
value = value[:8].zfill(8)
cpf = input[i].get("cpf", "Sem dados")
cpf = cpf[:11]
string_completa = f"{cpf}{nome}{value}\\n"
print(string_completa, end="")
Resultado
97905796671Maria Neusa de00000123\n44010762900Ricardo Fontes00000567\n
Foi feito o uso do método .get()
que tem como função buscar o valor presente em uma chave definida, caso não seja encontrado retorna uma mensagem padrão.
No artigo abaixo você poderá ler um pouco mais sobre o método get
e suas aplicações. O artigo está em inglês, caso tenha dificuldades com o idioma, recomendo o uso do tradutor do navegador.
No código acima foi utilizado a função zfill para o preenchimento de zeros, para entender mais sobre essa função, recomendo a seguinte leitura:
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!