ValueError: invalid literal for int() with base 10: 'cajones'
Publicado por Lissette (14 intervenciones) el 05/09/2020 14:14:40
Hola, tengo este código que me da el siguiente error: ValueError: invalid literal for int() with base 10: 'cajones'
Lo raro es que este otro código que es prácticamente igual, me devuelve el resultado correcto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import csv
import fileparse as fp
def leer_camion(nombre_archivo, types=None):
'''Computa el precio total del camion (cajones*precio) de un archivo'''
camion = []
with open(nombre_archivo, encoding='utf8') as f:
filas = csv.reader(f)
# Lee los encabezados del archivo
encabezados = next(filas)
for fila in filas:
if not fila: # Saltear filas vacías
continue
if types:
fila = [func(val) for func, val in zip(types,fila)]
# Armar el diccionario
registro = dict(zip(encabezados,fila))
camion.append(registro)
return camion
camion = fp.parse_csv('Data/camion.csv', types=[str,int,float])
Lo raro es que este otro código que es prácticamente igual, me devuelve el resultado correcto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#Ejercicio 5.5: Conversión de tipo
import csv
def parse_csv(nombre_archivo, types=None):
'''
Parsea un archivo CSV en una lista de registros
'''
with open(nombre_archivo, encoding='utf8') as f:
filas = csv.reader(f)
# Lee los encabezados del archivo
encabezados = next(filas)
registros = []
for fila in filas:
if not fila: # Saltear filas vacías
continue
if types:
fila = [func(val) for func, val in zip(types,fila)]
# Armar el diccionario
registro = dict(zip(encabezados,fila))
registros.append(registro)
return registros
registros_tipo = parse_csv('Data/camion.csv', types=[str, int, float])
Valora esta pregunta
0