Python - ordenar lista importada desde archivo csv

 
Vista:
sin imagen de perfil

ordenar lista importada desde archivo csv

Publicado por John (4 intervenciones) el 04/11/2022 02:22:28
Saludos a toda la comunidad, espero se encuentren muy bien.

llevo un rato intentando resolver este problema, pero no he logrado el resultado con la ultima parte.

he intentado imprimir en pantalla la información dentro de un archivo csv que contiene tres columnas:
nombre, valor1,valor2.

el inconveniente es que en cada fila imprime los valores en cualquier orden, no respeta el orden según los encabezados del csv.

comparto el código en caso de que alguién me pueda orientar con la solución.

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
27
28
29
30
31
32
33
34
import sys
import csv
 
def main():
 
    if len(sys.argv)<2:
        sys.exit("Too few command-line arguments")
    elif len(sys.argv)>2:
        sys.exit("Too many command-line arguments")
    elif ".csv" not in sys.argv[1]:
        sys.exit("Not a CSV file")
    else:
        try:
 
            doc=sys.argv[1]
 
            filas=[]
 
            with open(doc,"r") as file:
 
                headers=next(csv.reader(file))
 
 
                for line in file:
                    menu = line.rstrip().split(",")
 
                    filas.append({menu[0], menu[1], menu[2]})
 
                print(filas)
 
        except FileNotFoundError:
            sys.exit("File does not exist")
 
main()

No entiendo por qué me almacena en desorden cuando estoy especificando al momento de adicionar los valores el orden correcto: filas.append({menu[0], menu[1], menu[2]}). Ademas cuando adiciono la instruccion de imprimir menu, lo hace en el orden correcto. se supone que "filas" es el resultado de unir menus de todos los ciclos

comparto imagen del resultado como debería ser y como realmente lo hace.

estaré agradecido si me ueden indicar en donde estoy mal o que me puede faltar.

muchas gracias.

P.D:Por favor disculpen el desorden en el codigo, soy novato en el tema.

Correct_Output
Incorrect_output
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
sin imagen de perfil

ordenar lista importada desde archivo csv

Publicado por John (4 intervenciones) el 04/11/2022 02:54:51
estimados miembros del foro.

ya lo solucioné, era tan simple que no la había visto. reemplacé la linea:

filas.append({menu[0], menu[1], menu[2]})

por:

filas.append(menu)

lo había intentado antes, pero sin omitir las llaves {} y me salía error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar