Python - ValueError: invalid literal for int() with base 10: 'cajones'

 
Vista:
Imágen de perfil de Lissette
Val: 43
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

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'
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
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder