Estructuras de datos

Chema Cortés py en ch3m4.org
Vie Sep 10 11:00:08 CEST 2004


On Friday 10 September 2004 09:41, Catalin Lungu wrote:

> Lo leo y lo guardo de esta forma:
> result = {'TABLA': [{'TABLA_ID': ['Ntabla1'], 'DESCRIPCION':
> ['Descripcion1'], 'CAMPOS': [{'CAMPO': [{'CAMPO_ID': ['Ncampo11'], 'TIPO':
> ['Tcampo11']}, {'CAMPO_ID': ['Ncampo12'], 'TIPO': ['Tcampo12']}]}],
> 'FECHAHORA': ['Fechahora1']}, {'TABLA_ID': ['Ntabla2'], 'DESCRIPCION':
> ['Descripcion2'], 'CAMPOS': [{'CAMPO': [{'CAMPO_ID': ['Ncampo21'], 'TIPO':
> ['Tcampo21']}, {'CAMPO_ID': ['Ncampo22'], 'TIPO': ['Tcampo22']}]}],
> 'FECHAHORA': ['Fechahora2']}]}
>
> Para extraer valores bastante sencillo. Pero para insertar, o modificar no
> tanto. Como parámetro le estoy pasando una lista de tuplas
> [("TABLA","Ntabla1"),("CAMPOS",""),("CAMPO","Ncampo11")]. Esto me devuelve
> {'CAMPO_ID': ['Ncampo11'], 'TIPO': ['Tcampo11']} (justo lo que necesito).
>
> Por favor díganme como puedo insertar campos nuevos y modificar valores de
> campos existentes.

¿No te sería más sencillo si los IDs fueran las claves del diccionario?
Algo tal que así:

result = {
  'Ntabla1': {
     'DESCRIPCION': 'Descripcion1',
     'CAMPOS': {
        'Ncampo11': {'TIPO': 'Tcampo11'}, 
        'Ncampo12': {'TIPO': 'Tcampo12'}
     },
     'FECHAHORA': 'Fechahora1'
  },
  'Ntabla2': {
     'DESCRIPCION': 'Descripcion2',
     'CAMPOS': {
        'Ncampo21': {'TIPO': 'Tcampo21'},
        'Ncampo22', {'TIPO': 'Tcampo22'},
     },
     'FECHAHORA': 'Fechahora2'
  }
}

Para acceder a un campo:
  result['Ntabla1']['CAMPOS']['Ncampo11']
Para insertar un nuevo campo:
  result['Ntabla2']['CAMPOS']['Ncampo23']=['TIPO':'Tcampo23']
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: no disponible
Type: application/pgp-signature
Size: 189 bytes
Desc: no disponible
URL: <http://mail.python.org/pipermail/python-es/attachments/20040910/ab9c9aff/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es