簡體   English   中英

如何將 API 結果重新格式化為字典然后使用該字典?

[英]How can I reformat API results into a dictionary then use that dictionary?

我有一個任務,我需要使用默認情況下無法使用的密鑰來鍵入 API。 目前,我正在使用 getJSON 從 API 中提取數據,如下面的代碼所示:

$(document).ready(function() {
    $.getJSON("https://api.nasa.gov/mars-photos/api/v1/manifests/curiosity?api_key=DEMO_KEY", function(data){
        console.log(data);
    });
});

這是有道理的,但我被困在這里。 本質上,我想重新格式化 API 結果並將它們存儲在字典中,以便我可以使用“sol”鍵入結果。 理想情況下,字典將只包含鍵“sol”、它的值和鍵“cameras”,以及它在照片中每個部分的值,如 API 中所示。

此外,您 go 如何使用 sol 值鍵入字典,並返回與該 sol 值關聯的相機?

編輯:下面的代碼效果很好,但我沒有看到在全局使用相機后需要添加什么。

        let new_dict = { "sol": {}, "cameras": {} };
        
        $(document).ready(function(){
            $.getJSON("https://api.nasa.gov/mars-photos/api/v1/manifests/curiosity?api_key=0L4UJKm4YYvddR1QdZdCihRwQIqKBGrPErgFqUsw", function(data){
                let photos = data["photo_manifest"]["photos"];
                let sol_arr = [];

                for(x in photos){
                    let photo = photos[x];
                    let sol = photo.sol;
                    let cameras = photo.cameras;

                    sol_arr.push(sol);
                    new_dict["cameras"][sol] = cameras;
                }
                new_dict["sol"] = sol_arr;
                
                let sol_value = 1;
                let camera = new_dict["cameras"][sol_value];
            });
        });
$.getJSON("https://api.nasa.gov/mars-photos/api/v1/manifests/curiosity?api_key=DEMO_KEY", function(data){
    
    let photos = data["photo_manifest"]["photos"];



    let new_dict = { "sol" : {}, "cameras": {} };

    let sol_arr = [];

    for(x in photos){
 
        let photo = photos[x];

        let sol = photo.sol;
        let cameras = photo.cameras;

        sol_arr.push(sol);
        new_dict["cameras"][sol] = cameras;
        
    }

    new_dict["sol"] = sol_arr;

});

要使用 sol 值鍵入字典,您只需要將 sol 值放入

let sol_value = 1;
console.log(new_dict["cameras"][sol_value]); //this contains the cameras with the sol value 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM