Python - Ayuda codigo Python, recorrer diccionarios

 
Vista:
sin imagen de perfil

Ayuda codigo Python, recorrer diccionarios

Publicado por Andres (6 intervenciones) el 25/09/2021 03:11:43
Buenas Noches, me pueden ayudar con el siguiente codigo, como puedo hacer para que me muestre toda la informacion que contiene el diccionario (registro, nombres, apellidos, documento, programa y las materias)

seleccion = {
"20170136837":{
"nombres" : "Jorge Juan",
"apellidos" : "Moreno, López",
"documento" : 88481595,
"programa" : "ARQU",
"materias" : [{
"facultad" : "Arquitectura",
"codigo" : "ARQU-2113",
"nota" : 2.97,
"creditos" : 2,
"retirada" : "Si",},
{
"facultad" : "Arquitectura",
"codigo" : "ARQU-5048",
"nota" : 4.26,
"creditos" : 0,
"retirada" : "No",
}],
},
"20130225137":{
"nombres" : "Sara Carolina",
"apellidos" : "Gómez, Fernández",
"documento" : 58770043,
"programa" : "ARQD",
"materias" : [{
"facultad" : "Arquitectura",
"codigo" : "ARQD-7738",
"nota" : 3.36,
"creditos" : 3,
"retirada" : "No",
},
{
"facultad" : "Arquitectura",
"codigo" : "ARQD-7698",
"nota" : 1.59,
"creditos" : 4,
"retirada" : "Si", }, ]}
}
for key, datos in seleccion.items():
print("Informacion de {}".format(key))
for categoria, informacion in datos["materias"].items(),:
print (" -{}:{}".format(categoria , informacion))
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
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda codigo Python, recorrer diccionarios

Publicado por tincopasan (937 intervenciones) el 25/09/2021 09:03:25
la verdad que es confusa la pregunta, así que supondré que buscas algo así:
1
2
3
4
5
6
7
8
9
10
11
12
#-*- coding: utf  -8 -*-  #primer linea del script
#acá va el diccionario
#una forma de mostrar los datos
for key, datos in seleccion.items():
    print(f"Información de {key}: ")
    for x,z in datos.items():
        if x == "materias":
            print("materias: ",end=" ")
            for clave,valor in z[0].items():
                print(f'{clave}: {valor}',end=" ")
        else:print(f'{x}: {z}')
    print('\n')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda codigo Python, recorrer diccionarios

Publicado por Andres (6 intervenciones) el 25/09/2021 19:41:00
Muchas Gracias, si era lo que buscaba.
Ahora como podria hacer para que la información se muestre este en una sola linea y adicionar el promedio de las 2 notas que tiene, en resultado se mostraria en esta forma [código del estudiante, nombres, apellidos, documento, programa, promedio]
Le Agradezco si me podria colaborar.
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
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda codigo Python, recorrer diccionarios

Publicado por Francisco Javier (163 intervenciones) el 25/09/2021 13:00:09
Hola buenas, la respuesta de Tincopasan está muy bien, yo te la escribo que también había echo algo así:

1
2
3
4
5
6
7
8
9
10
11
#-*- coding: utf  -8 -*-
for i in seleccion:
  for k,j in(seleccion.get(i)).items():
    if k=='materias':
      for m in j:
        for i,h in m.items():
          print('{}-->{}'.format(i,h))
    if k=='materias':
      j='fin del registro del alumno\n'
      k=''
    print('{}----> {}'.format(k,j))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda codigo Python, recorrer diccionarios

Publicado por Andres (6 intervenciones) el 25/09/2021 19:41:27
Vale, perfecto, tambien me funciono, muchas gracias
Ahora como podria hacer para que la información se muestre este en una sola linea y adicionar el promedio de las 2 notas que tiene, en resultado se mostraria en esta forma [código del estudiante, nombres, apellidos, documento, programa, promedio]
Le Agradezco si me podria colaborar.
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
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda codigo Python, recorrer diccionarios

Publicado por Francisco Javier (163 intervenciones) el 25/09/2021 20:18:22
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#-*- coding: utf  -8 -*-
lista=[]
for i in seleccion:
  for k,j in(seleccion.get(i)).items():
    if k=='materias':
      for m in j:
        for i,h in m.items():
          print('{}-->{}'.format(i,h))
          lista.append(h)
    if k=='materias':
      j='fin del registro del alumno\n'
      k=''
    print('{}----> {}'.format(k,j))
    lista.append(j)
  print('{} ; {} ; {} ; {} ;Media= {}\n'.format(lista[0],lista[1],lista[2],lista[3],(lista[6]+lista[11])/2))
  lista=[]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Ayuda codigo Python, recorrer diccionarios

Publicado por Andres (6 intervenciones) el 25/09/2021 20:23:03
Muchas Gracias, me funciono perfecto.
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