Stack Overflow em Português Asked by UserDel on October 10, 2020
Quero carregar um dicionário onde o arquivo texto .txt
contém informações do tipo String
, porém, quero que os valores sejam carregados do tipo Inteiro
.
{'11322567498': '[0],[0]'}
Note que os valores estão sempre sendo carregados como String
.
Código que estou usando para carregar os valores em um dicionário:
def carregar_reservas(reserva):
with open('reservas.txt') as doc:
for line in doc:
(cpf, name) = line.split()
reserva[cpf] = name
@UserDel,
A variável name
possui caracteres que não podem ser convertidos em número. No caso [
, ]
e ,
O ideal é limpar sua variável antes de converter.
Usando o comando abaixo, você irá retirar uma série de caracteres indesejados.
name = name.translate({ord(c): "" for c in " !@#$%^&*()[]{};:./<>?\|`~-=_+"})
Perceba que a vírgula não fez parte do comando acima. Entendo que a mesma seja divisor de decimal. Sendo assim, por fim, você precisaria substituí-la por ponto com o replace
name = name.replace(",", ".")
Por fim, transforme em inteiro com int(name)
ou float com float(name)
Veja o exemplo abaixo:
>>> name = "!#[10]$, [02]"
>>> name = name.translate({ord(c): "" for c in " !@#$%^&*()[]{};:./<>?\|`~-=_+"})
>>> name
'10,02'
>>> name = name.replace(",", ".")
>>> name
'10.02'
>>> float(name)
10.02
>>>
Espero que ajude
Answered by Paulo Marques on October 10, 2020
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP