Discussion:
[Python-es] Ordenar diccionario
unknown
2014-08-11 18:43:04 UTC
Permalink
Hola a todos.

Tengo un diccionario de la siguiente manera:

a_ = {
u'Incoterms1': {'aplica': u'Fac', 'indice': 17, 'orden': 4, 'columna':
u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14, 'orden': 14,
'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5, 'orden': 10,
'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15, 'orden': 15,
'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden': 13, 'columna':
u'Qty Unit', 'campo':u'Unidad Comercial'}
, u'Currency': {'aplica': u'Fac', 'indice': 16, 'orden': 7,'columna':
u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3, 'orden': 3,
'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2, 'orden': 2,
'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22, 'orden': 1,
'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19, 'orden': 5,
'columna': u'DO Created on', 'campo': u'Fecha Factura'}
, u'Reference Doc(SO/PO)': {'aplica': u'Fac', 'indice': 1, 'orden': 6,
'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6, 'orden': 12,
'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}

y tengo que ordenarlo en relación al valor del KEY orden que se encuentra
en el diccionario interno.

¿algún consejo sobre como hacerlo?

De momento he logrado extraer el valor de orden de cada uno y ordenarlo,
pero ya me atoré.

sorted([ value['orden'] for (key,value) in sorted(a_.items())])

Agradezco de antemano la ayuda.

by:

ISC. Manuel Alejandro Estévez Fernández
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140811/323dc2d1/attachment.html>
unknown
2014-08-11 18:52:26 UTC
Permalink
No estoy seguro, pero al parecer tendrías que usar la clase *OrderedDict*
que viene en *collections*.

from collections import OrderedDict

Esta solución podría no funcionará en versiones viejas de Python.
Post by unknown
Hola a todos.
a_ = {
u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14, 'orden': 14,
'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5, 'orden': 10,
'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15, 'orden': 15,
'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden': 13,
'columna': u'Qty Unit', 'campo':u'Unidad Comercial'}
u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3, 'orden': 3,
'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2, 'orden': 2,
'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22, 'orden': 1,
'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19, 'orden': 5,
'columna': u'DO Created on', 'campo': u'Fecha Factura'}
, u'Reference Doc(SO/PO)': {'aplica': u'Fac', 'indice': 1, 'orden': 6,
'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6, 'orden': 12,
'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}
y tengo que ordenarlo en relación al valor del KEY orden que se encuentra
en el diccionario interno.
¿algún consejo sobre como hacerlo?
De momento he logrado extraer el valor de orden de cada uno y ordenarlo,
pero ya me atoré.
sorted([ value['orden'] for (key,value) in sorted(a_.items())])
Agradezco de antemano la ayuda.
ISC. Manuel Alejandro Estévez Fernández
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140811/b2d699de/attachment.html>
unknown
2014-08-11 18:57:41 UTC
Permalink
Por aquí un ejemplo de *OrderedDict*:

http://pymotw.com/2/collections/ordereddict.html

Yo tenía un problema similar con unos diccionarios que quería convertir a
JSON. Espero que OrderedDict te ayude.
Post by unknown
No estoy seguro, pero al parecer tendrías que usar la clase *OrderedDict*
que viene en *collections*.
from collections import OrderedDict
Esta solución podría no funcionará en versiones viejas de Python.
2014-08-11 13:43 GMT-05:00 Manuel A. Estevez Fernandez <stvzito en gmail.com>
Post by unknown
Hola a todos.
a_ = {
u'Incoterms1': {'aplica': u'Fac', 'indice': 17, 'orden': 4,
'columna': u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14, 'orden': 14,
'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5, 'orden': 10,
'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15, 'orden': 15,
'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden': 13,
'columna': u'Qty Unit', 'campo':u'Unidad Comercial'}
u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3, 'orden': 3,
'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2, 'orden': 2,
'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22, 'orden': 1,
'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19, 'orden': 5,
'columna': u'DO Created on', 'campo': u'Fecha Factura'}
6, 'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6, 'orden': 12,
'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}
y tengo que ordenarlo en relación al valor del KEY orden que se encuentra
en el diccionario interno.
¿algún consejo sobre como hacerlo?
De momento he logrado extraer el valor de orden de cada uno y ordenarlo,
pero ya me atoré.
sorted([ value['orden'] for (key,value) in sorted(a_.items())])
Agradezco de antemano la ayuda.
ISC. Manuel Alejandro Estévez Fernández
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140811/e43861da/attachment.html>
unknown
2014-08-11 19:29:06 UTC
Permalink
Gracias por tus comentarios Omar.

De momento parece que ya lo resolví no se si hay una mejor manera pero de
momento esto es lo que hice:
Primero genero un diccionario con la llave y el valor del orden
Post by unknown
Post by unknown
ord_ = {key: a_[key]['orden'] for key in a_.keys()}
Luego ordeno y obtengo una lista con el orden de los campos.
Post by unknown
Post by unknown
sorted(ord_, key=ord_.__getitem__)
by:

ISC. Manuel Alejandro Estévez Fernández



El 11 de agosto de 2014, 13:57, Omar Gutiérrez <omar.vpa en gmail.com>
Post by unknown
http://pymotw.com/2/collections/ordereddict.html
Yo tenía un problema similar con unos diccionarios que quería convertir a
JSON. Espero que OrderedDict te ayude.
No estoy seguro, pero al parecer tendrías que usar la clase *OrderedDict*
Post by unknown
que viene en *collections*.
from collections import OrderedDict
Esta solución podría no funcionará en versiones viejas de Python.
2014-08-11 13:43 GMT-05:00 Manuel A. Estevez Fernandez <stvzito en gmail.com
Hola a todos.
a_ = {
u'Incoterms1': {'aplica': u'Fac', 'indice': 17, 'orden': 4,
'columna': u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14, 'orden': 14,
'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5, 'orden': 10,
'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15, 'orden': 15,
'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden': 13,
'columna': u'Qty Unit', 'campo':u'Unidad Comercial'}
7,'columna': u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3, 'orden': 3,
'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2, 'orden': 2,
'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22, 'orden': 1,
'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19, 'orden': 5,
'columna': u'DO Created on', 'campo': u'Fecha Factura'}
6, 'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6, 'orden': 12,
'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}
y tengo que ordenarlo en relación al valor del KEY orden que se
encuentra en el diccionario interno.
¿algún consejo sobre como hacerlo?
De momento he logrado extraer el valor de orden de cada uno y ordenarlo,
pero ya me atoré.
sorted([ value['orden'] for (key,value) in sorted(a_.items())])
Agradezco de antemano la ayuda.
ISC. Manuel Alejandro Estévez Fernández
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140811/78808ebe/attachment.html>
unknown
2014-08-12 02:08:00 UTC
Permalink
El 11 de agosto de 2014, 21:29, Manuel A. Estevez Fernandez <
Post by unknown
Gracias por tus comentarios Omar.
De momento parece que ya lo resolví no se si hay una mejor manera pero de
Primero genero un diccionario con la llave y el valor del orden
Post by unknown
Post by unknown
ord_ = {key: a_[key]['orden'] for key in a_.keys()}
Luego ordeno y obtengo una lista con el orden de los campos.
Post by unknown
Post by unknown
sorted(ord_, key=ord_.__getitem__)
Mira a ver si te vale mejor ésto:

sorted(a_.items(), key=lambda x: x[1]['orden'])
Post by unknown
ISC. Manuel Alejandro Estévez Fernández
El 11 de agosto de 2014, 13:57, Omar Gutiérrez <omar.vpa en gmail.com>
Post by unknown
http://pymotw.com/2/collections/ordereddict.html
Yo tenía un problema similar con unos diccionarios que quería convertir a
JSON. Espero que OrderedDict te ayude.
No estoy seguro, pero al parecer tendrías que usar la clase *OrderedDict*
Post by unknown
que viene en *collections*.
from collections import OrderedDict
Esta solución podría no funcionará en versiones viejas de Python.
2014-08-11 13:43 GMT-05:00 Manuel A. Estevez Fernandez <
Hola a todos.
a_ = {
u'Incoterms1': {'aplica': u'Fac', 'indice': 17, 'orden': 4,
'columna': u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14, 'orden': 14,
'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5, 'orden': 10,
'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15, 'orden': 15,
'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden': 13,
'columna': u'Qty Unit', 'campo':u'Unidad Comercial'}
7,'columna': u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3, 'orden': 3,
'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2, 'orden': 2,
'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22, 'orden': 1,
'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19, 'orden': 5,
'columna': u'DO Created on', 'campo': u'Fecha Factura'}
6, 'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6, 'orden': 12,
'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}
y tengo que ordenarlo en relación al valor del KEY orden que se
encuentra en el diccionario interno.
¿algún consejo sobre como hacerlo?
De momento he logrado extraer el valor de orden de cada uno y
ordenarlo, pero ya me atoré.
sorted([ value['orden'] for (key,value) in sorted(a_.items())])
Agradezco de antemano la ayuda.
ISC. Manuel Alejandro Estévez Fernández
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
--
Hyperreals *R "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140812/3c9c6c0e/attachment.html>
unknown
2014-08-11 20:31:58 UTC
Permalink
Post by unknown
http://pymotw.com/2/collections/ordereddict.html
Yo tenía un problema similar con unos diccionarios que quería convertir a
JSON. Espero que OrderedDict te ayude.
OrderedDict es un diccionario ordenado en orden cronológico, es decir, está
ordenado según le introduces los valores.

Si quieres el diccionario entero en orden:

[x[1] for x in sorted(a_.items(), key=lambda x: x[0])]

Dentro de sorted() se ordenan los pares de valores y el bucle externo es
para selecionar sólo los valores.


Como nota de estilo, no me gusta usar los métodos mágicos directamente.
Queda más legible con una función lambda o con el módulo operator.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140811/f7124757/attachment.html>
unknown
2014-08-11 19:48:11 UTC
Permalink
Los diccionarios son básicamente desordenados la forma más lógica de
hacerlo es obtener las llaves, ordenarlas en una lista y luego llamar el
diccionario recorriendo la lista.
Los diccionarios ordenados son a partir de la 2.7 creo

http://stackoverflow.com/questions/9001509/python-dictionary-sort-by-key


El 11 de agosto de 2014, 19:52, Omar Gutiérrez <omar.vpa en gmail.com>
Post by unknown
No estoy seguro, pero al parecer tendrías que usar la clase *OrderedDict*
que viene en *collections*.
from collections import OrderedDict
Esta solución podría no funcionará en versiones viejas de Python.
2014-08-11 13:43 GMT-05:00 Manuel A. Estevez Fernandez <stvzito en gmail.com>
Post by unknown
Hola a todos.
a_ = {
u'Incoterms1': {'aplica': u'Fac', 'indice': 17, 'orden': 4,
'columna': u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14, 'orden': 14,
'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5, 'orden': 10,
'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15, 'orden': 15,
'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden': 13,
'columna': u'Qty Unit', 'campo':u'Unidad Comercial'}
u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3, 'orden': 3,
'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2, 'orden': 2,
'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22, 'orden': 1,
'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19, 'orden': 5,
'columna': u'DO Created on', 'campo': u'Fecha Factura'}
6, 'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6, 'orden': 12,
'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}
y tengo que ordenarlo en relación al valor del KEY orden que se encuentra
en el diccionario interno.
¿algún consejo sobre como hacerlo?
De momento he logrado extraer el valor de orden de cada uno y ordenarlo,
pero ya me atoré.
sorted([ value['orden'] for (key,value) in sorted(a_.items())])
Agradezco de antemano la ayuda.
ISC. Manuel Alejandro Estévez Fernández
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
--
*monoBOT*
Visite mi sitio(Visit my site): monobotsoft.es/blog/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140811/11470a1c/attachment.html>
unknown
2014-08-11 18:55:05 UTC
Permalink
podrías usar OrderedDict

import collections
ordered = OrderedDict(sorted(a_.items))


El 11 de agosto de 2014, 13:43, Manuel A. Estevez Fernandez<
Post by unknown
Hola a todos.
a_ = {
u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14, 'orden': 14,
'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5, 'orden': 10,
'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15, 'orden': 15,
'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden': 13,
'columna': u'Qty Unit', 'campo':u'Unidad Comercial'}
u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3, 'orden': 3,
'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2, 'orden': 2,
'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22, 'orden': 1,
'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19, 'orden': 5,
'columna': u'DO Created on', 'campo': u'Fecha Factura'}
, u'Reference Doc(SO/PO)': {'aplica': u'Fac', 'indice': 1, 'orden': 6,
'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6, 'orden': 12,
'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}
y tengo que ordenarlo en relación al valor del KEY orden que se encuentra
en el diccionario interno.
¿algún consejo sobre como hacerlo?
De momento he logrado extraer el valor de orden de cada uno y ordenarlo,
pero ya me atoré.
sorted([ value['orden'] for (key,value) in sorted(a_.items())])
Agradezco de antemano la ayuda.
ISC. Manuel Alejandro Estévez Fernández
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140811/77fe2ecf/attachment.html>
unknown
2014-08-11 18:56:05 UTC
Permalink
Perdón, un typo.


import collections
ordered = OrderedDict(sorted(a_.items()))



El 11 de agosto de 2014, 13:55, Luis Fernando Barrera<
Post by unknown
podrías usar OrderedDict
import collections
ordered = OrderedDict(sorted(a_.items))
El 11 de agosto de 2014, 13:43, Manuel A. Estevez Fernandez<
Post by unknown
Hola a todos.
a_ = {
u'Incoterms1': {'aplica': u'Fac', 'indice': 17, 'orden': 4,
'columna': u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14, 'orden': 14,
'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5, 'orden': 10,
'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15, 'orden': 15,
'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden': 13,
'columna': u'Qty Unit', 'campo':u'Unidad Comercial'}
u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3, 'orden': 3,
'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2, 'orden': 2,
'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22, 'orden': 1,
'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19, 'orden': 5,
'columna': u'DO Created on', 'campo': u'Fecha Factura'}
6, 'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6, 'orden': 12,
'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}
y tengo que ordenarlo en relación al valor del KEY orden que se encuentra
en el diccionario interno.
¿algún consejo sobre como hacerlo?
De momento he logrado extraer el valor de orden de cada uno y ordenarlo,
pero ya me atoré.
sorted([ value['orden'] for (key,value) in sorted(a_.items())])
Agradezco de antemano la ayuda.
ISC. Manuel Alejandro Estévez Fernández
_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20140811/765dba70/attachment.html>
unknown
2014-08-14 16:59:39 UTC
Permalink
import collections
ordered = collections.OrderedDict(sorted(a_.items()))

Ahora sí.
Marcelo
________________________________

De: Python-es
[mailto:python-es-bounces+marcelobarbero=arnet.com.ar en python.org] En nombre
de Luis Fernando Barrera
Enviado el: lunes 11 de agosto de 2014 15:56
Para: La lista de python en castellano
Asunto: Re: [Python-es] Ordenar diccionario


Perdón, un typo.


import collections
ordered = OrderedDict(sorted(a_.items()))



El 11 de agosto de 2014, 13:55, Luis Fernando
Barrera<luisfernando en informind.com> escribió:


podrías usar OrderedDict

import collections
ordered = OrderedDict(sorted(a_.items))


El 11 de agosto de 2014, 13:43, Manuel A. Estevez
Fernandez<stvzito en gmail.com> escribió:


Hola a todos.

Tengo un diccionario de la siguiente manera:

a_ = {
u'Incoterms1': {'aplica': u'Fac', 'indice': 17, 'orden':
4, 'columna': u'Incoterms1', 'campo': u'Incoterm'}
, u'Net Amount': {'aplica': u'Mer', 'indice': 14,
'orden': 14, 'columna': u'Net Amount', 'campo': u'Precio Unitario'}
, u'Material Code': {'aplica': u'Mer', 'indice': 5,
'orden': 10, 'columna': u'Material Code', 'campo': u'Codigo Producto'}
, u'Total Amount': {'aplica': u'Mer', 'indice': 15,
'orden': 15, 'columna': u'Total Amount', 'campo': u'Importe Total'}
, u'Qty Unit': {'aplica': u'Mer', 'indice': 13, 'orden':
13, 'columna': u'Qty Unit', 'campo':u'Unidad Comercial'}
, u'Currency': {'aplica': u'Fac', 'indice': 16, 'orden':
7,'columna': u'Currency', 'campo': u'Moneda '}
, u'Invoice Number': {'aplica': u'Fac', 'indice': 3,
'orden': 3, 'columna': u'Invoice Number', 'campo': u'Numero Factura'}
, u'House BL No.': {'aplica': u'Gui', 'indice': 2,
'orden': 2, 'columna':u'House BL No.', 'campo': u'Guia House'}
, u'Master BL No.': {'aplica': u'Gui', 'indice': 22,
'orden': 1, 'columna': u'Master BL No.', 'campo': u'Guia Master'}
, u'DO Created on': {'aplica': u'Fac', 'indice': 19,
'orden': 5, 'columna': u'DO Created on', 'campo': u'Fecha Factura'}
, u'Reference Doc(SO/PO)': {'aplica': u'Fac', 'indice':
1, 'orden': 6, 'columna': u'Reference Doc(SO/PO)', 'campo': u'Orden de
Compra'}
, u'Delivery Qty.': {'aplica': u'Mer', 'indice': 6,
'orden': 12, 'columna': u'Delivery Qty.', 'campo': u'Cantidad Comercial'}
}

y tengo que ordenarlo en relación al valor del KEY orden que
se encuentra en el diccionario interno.

¿algún consejo sobre como hacerlo?

De momento he logrado extraer el valor de orden de cada uno
y ordenarlo, pero ya me atoré.

sorted([ value['orden'] for (key,value) in
sorted(a_.items())])


Agradezco de antemano la ayuda.

by:

ISC. Manuel Alejandro Estévez Fernández



_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Loading...