I'm trying to transform a file into a dictionary but it's giving the following error:
Traceback (most recent call last): File "C: \ Users \ taynan \ AppData \ Local \ Programs \ Python \ Python36-32 \ Project CRUD \ Interface.py ", line 46, in consultProfessor (cpfP, arqProfessors) File "C: \ Users \ taynan \ AppData \ Local \ Programs \ Python \ Python36-32 \ Project CRUD \ ModuloDeFuncoes.py ", line 38, in consultingProfessor key, val = line [: - 1] .split () ValueError: not enough values to unpack (expected 2, got 0)
Can anyone identify where the error is? Because I do not know: /
File:
{'Nome': 'd', 'Cpf': '33', 'Departamento': 'a'}
{'Nome': 'f', 'Cpf': '22', 'Departamento': 'g'}
{'Nome': 'a', 'Cpf': '13', 'Departamento': 'b'}
{'Nome': 'x', 'Cpf': '24', 'Departamento': 'd'}
Here's part of the code, because it's too big:
def consultarProfessor(cpf, arquivoEspecifico):
arquivo = lerArquivo(arquivoEspecifico)
for linha in arquivo:
linha = linha.replace('"',"")
chave, valor = linha[:-1].split()
dicProfessores[chave] = valor
if cpf in dicProfessores.values():
dicProfessor = dicProfessores[cpf]
arquivo.close() #definindo uma variavel para a chave do dicionario de professores
print(dicProfessores)
else:
print("Este professor não é funcionário desta faculdade.")
Obs. I've already tried using dicProfessores = eval(linha[-1])
, but it was making a lot of errors.
#Edit: Consegui criar o dicionário, mas ele está saindo todo errado:
def file_to_dict(arquivoEspecifico):
dic = {}
arquivo = lerArquivo(arquivoEspecifico)
for linha in arquivo:
linha = linha.replace('"',"")
valor = linha[:-1].split()
chave = linha[:-1].split()
for v in valor:
v = v.replace(",","")
v = v.replace("{","")
v = v.replace("}","")
v = v.replace(":","")
v = v.replace("'","")
for c in chave:
c = c.replace(",","")
c = c.replace("{","")
c = c.replace("}","")
c = c.replace(":","")
c = c.replace("'","")
dic[c] = v
print(dic)
return dic
Here's how it's coming out:
{'Nome': 'g', 'd': 'a', 'Cpf': 'g', '33': 'a', 'Departamento': 'g', 'a': 'a', 'f': 'g', '22': 'g', 'g': 'g'}