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.
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.
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.
Valora esta pregunta
0