ValueError:无法将字符串转换为浮点:'';python

ValueError:无法将字符串转换为浮点:'';python,python,Python,我有这个档案 1 1 GALAXY S10 1000 MOVIL 1 1 2 2 IPHONE 1200 MOVIL 2 2 3 3 MAC 1400 ORDENADOR 2 3 我的代码: listProducto1 = [1,"GALAXY S10", 1000, "MOVIL",1,1] listProducto2 = [2,"IPHONE", 1200, "MOVIL",2,2] listProducto3 = [3,"MAC", 1400, "ORDENADOR",2,3] dic

我有这个档案

1
1
GALAXY S10
1000
MOVIL
1
1
2
2
IPHONE
1200
MOVIL
2
2
3
3
MAC
1400
ORDENADOR
2
3
我的代码:

listProducto1 = [1,"GALAXY S10", 1000, "MOVIL",1,1]
listProducto2 = [2,"IPHONE", 1200, "MOVIL",2,2]
listProducto3 = [3,"MAC", 1400, "ORDENADOR",2,3]

diccProductos = {1:listProducto1,2:listProducto2,3:listProducto3}
diccAuxiliar ={}

f=open(fichero,"w")
for clave in diccProductos.keys():
    f.write(str(clave)+"\n")
    for valor in diccProductos.keys():
        f.write(str(diccProductos[clave][valor-1])+"\n")
f.close()

f=open(fichero,"r")
lineas=f.read().split("\n")
contador=0

for linea in lineas:
    if (contador==0):
        varAux=str(linea)
        #varAux=linea
        #varKey = int(float(varAux))
        #varKey = int(varAux)
        print(contador,varAux)
        diccAuxiliar[varAux]=[]
    else:
        varValor=linea
        print("contador: ",contador," |valor :",varValor)
        diccAuxiliar[varAux].append(varValor)
    contador+=1

    if (contador==7):
        contador=0

print(diccAuxiliar["1"][3])

为了找到键,我必须使用string,我想使用整数,当我使用var=int(line)时,这是我的错误,我尝试使用float


我的想法是将一个包含列表的字典传递给一个文件,然后获取该文件并使其可视化,以便在不使用pickle、csv、json等的情况下继续使用该字典。

如果只使用列表,您的代码可以更干净。使用这种方法,您的第一个产品将从
0
开始,而不是从
1
开始,并且每个产品的输出文件将有
6行,而不是您发布的代码中的
7行

下面是一个实现我使用Python 3.6+描述的概念的解决方案(因为
f-strings
):

从pathlib导入路径
产品=[
[1,“星系S10”,1000,“MOVIL”,1,1],
[2,“IPHONE”,1200,“MOVIL”,2,2],
[3,“MAC”,1400,“ORDENADOR”,2,3]
]
filename=Path('outputfile.txt')
每产品行数=len(产品[0])
将filename.open('w')作为f:
对于产品中的产品:
对于产品价值:
f、 写入(f'{value}\n')
产品_aux=[]
将filename.open()作为f:
lines=[[f.readlines()中的u的[uu.strip()]
对于范围内的i(0,长度(线),每个产品的线):
附加产品([
int(u)if u.isdigit()else_
对于u行[i:i+每个产品的行]
])
打印(产品[0][3])

“要找到密钥,我必须使用字符串,我要使用整数”。。。你为什么不用一个列表来代替呢?非常感谢你,这是另一种提升产品的方式,因为缺乏经验,我没有计划好files@Jesus1991,不用担心。我很高兴它对你有用。