es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo convertir las coordenadas de un archivo json en una lista de coordenadas que python pueda utilizar.

Cómo convertir esto:

dict = {"objects":[
            {
  "type": "node",
  "id": 46049199,
  "lat": 52.2925916,
  "lon": 4.9485062,
  "tags": {
  "traffic_calming": "table"
    }
},

{
“type”: “node”,
“id”: 46053305,
“lat”: 52.2936706,
“lon”: 4.9469035,
“tags”: {
“barrier”: “gate”
}
},
{
“type”: “node”,
“id”: 46053351,
“lat”: 52.2934958,
“lon”: 4.9463902
}
]

en esto

coordTD2 = {46049199: [52.2925916, 4.9485062], 46053305: [52.2936706, 4.9469035], 46053351: [52.2934958, 4.9463902]}
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para convertir el diccionario dado al formato deseado, seleccionamos los valores necesarios para cada clave y los reorganizamos en un nuevo diccionario. Las claves serán los valores “id” y los valores serán una lista que contiene los valores “lat” y “lon”.

    Aquí está el código para lograr esto:

    dict = {"objects":[
           {
                "type": "node",
                "id": 46049199,
                "lat": 52.2925916,
                "lon": 4.9485062,
                "tags": {
                    "traffic_calming": "table"
                }
            },
            {
                "type": "node",
                "id": 46053305,
                "lat": 52.2936706,
                "lon": 4.9469035,
                "tags": {
                    "barrier": "gate"
                }
            },
            {
                "type": "node",
                "id": 46053351,
                "lat": 52.2934958,
                "lon": 4.9463902
            }
        ]
    }
    
    coordTD2 = {}
    for obj in dict["objects"]:
        coordTD2[obj["id"]] = [obj["lat"], obj["lon"]]
    
    print(coordTD2)
    

    La salida de este código será:

    {46049199: [52.2925916, 4.9485062], 46053305: [52.2936706, 4.9469035], 46053351: [52.2934958, 4.9463902]}
    

Comments are closed.