I have a data in which I have a dictionary with nested lists, my data is as follows:
data = {
'Articulos': [
{
'id': 1,
'titulo': 'Titulo 1',
'keywords': 'keywords1',
'descripcion': 'asdsadsadsasdadsa',
'nombre_proyecto': 'Diferentes dentro del del Conocimiento Tradicional del Pueblo Saraguro',
'link_articulo': 'https://linkarticulo1',
'mapeo':
[
'Id',
'Titulo',
'Keywords',
'Descripcion',
'Nombre Proyecto',
'Link Articulo'
]
},
{
'id': 3,
'titulo': 'Titulo 2',
'keywords': 'keywords2',
'descripcion': 'El cancerpor esta enfermeda',
'nombre_proyecto': 'PROSPECCION DE',
'link_articulo': 'https://linkarticulo2',
'mapeo':
[
'Id',
'Titulo',
'Keywords',
'Descripcion',
'Nombre Proyecto',
'Link Articulo'
]
}
]
'Proyectos': [
{
'codigo_proyecto': 'Proy_001',
'mapeo':
[
'Codigo Proyecto'
]
},
{
'codigo_proyecto': 'PROY_CBCM_0011',
'mapeo':
[
'Codigo Proyecto'
]
}
]
}
The problem I'm having is that I can't pass the values found in mapeo
to the values found on mapeo
. I need the values found in mapeo
to become the keys of the values found for example in Articulos
and get something like this:
Id: 1
Titulo: Titulo 1
Keywords: keywords1
Descripcion: asdsadsadsasdadsa
Nombre Proyecto: Diferentes dentro del del Conocimiento Tradicional del Pueblo Saraguro
Link Articulo: https://linkarticulo1
Id: 3
Titulo: Titulo 2
Keywords: keywords2
Descripcion: El cancerpor esta enfermeda
Nombre Proyecto: PROSPECCION DE
Link Articulo: https://linkarticulo2
Same with Proyectos
to get the following:
Codigo Proyecto: Proy_001
Codigo Proyecto: PROY_CBCM_0011
I really don't know how to do it. I hope you have understood me and you can help me solve this. Thanks in advance.
I offer this solution:
This function receives a list of dictionaries. Each element of the list has a key
mapeo
whose value is a list of names. With each element, a new element must be created, using the names of the list ofmapeo
. The elements are matched one by one.The function iterates over the elements of the dictionary with a
for
. This gives us each element. Usingkeys()
extracts the list of keys from the dictionary and withzip
makes a sequence of ordered pairs with the list ofmapeo
.With this information we can now create the new dictionary: we have the new key and the old value.
show
produces:
The zip() function can help you
Which results...
You will find more examples here: https://ellibrodepython.com/zip-python