Foros del Web » Programando para Internet » Python »

Crear listas de diccionarios

Estas en el tema de Crear listas de diccionarios en el foro de Python en Foros del Web. Hola, Parto de un archivo llamado test.json que contiene una lista de diccionarios. Cada diccionario contiene tres pares key/value referentes a un id y a ...
  #1 (permalink)  
Antiguo 30/07/2016, 17:23
 
Fecha de Ingreso: abril-2016
Mensajes: 13
Antigüedad: 8 años
Puntos: 0
Crear listas de diccionarios

Hola,

Parto de un archivo llamado test.json que contiene una lista de diccionarios. Cada diccionario contiene tres pares key/value referentes a un id y a coordenadas geográficas ( latitud y longitud).

[
{"lat":25.75,"lon":-80.29,"id":1},
{"lat":48.93,"lon":2.22,"id":2},
{"lat":40.88,"lon":-74.20,"id":3},
{"lat":27.98,"lon":-82.513,"id":4}
]

He conseguido leer este archivo mediante el módulo json de Python y imprimir en pantalla una lista de listas de coordenadas sin problemas:

Código:
import json
with open(r'C:\COURSES\json3.json', 'r') as dataFile:
	data= json.load(dataFile)
dataList=[]
for dict in data:
    lonValue= dict['lon']
    latValue= dict['lat']
    dataList.append([lonValue,latValue])
print dataList
Resultado:
[[-80.29, 25.75], [2.22, 48.93], [-74.20, 40.88], [-82.51, 27.98], [-122.33, 47.55]]

O también:

Código:
import json
with open(r'C:\COURSES\test.json', 'r') as dataFile:
	data= json.load(dataFile)
dataDict=[]
for dict in data:
    lonValue = dict['lon']
    latValue = dict['lat']
    dataDict.append([lonValue,latValue])
print dataDict
Resultado:
[[-80.29, 25.75], [2.22, 48.93], [-74.20, 40.88], [-82.51, 27.98], [-122.33, 47.55]]

Ahora pretendo repetir el ejercicio pero creando una lista de diccionarios en lugar de una lista de listas pero no sé cómo hacerlo. Y tampoco sé cómo crear un diccionario de diccionarios.

¿Cómo podría hacerlo? ¿Hay alguna alternativa a append() para añadir datos a un diccionario?

Gracias

Etiquetas: diccionarios, import, listas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:36.