繁体   English   中英

如何将 JSON 对象变成字典?

[英]How do I turn JSON Objects into a dict?

从事淡水鱼保护项目。 我抓取了一个 JSON 文件,如下所示:

{
  "fish": [
    {
      "id": 0,
      "n": "NO INFORMATION",
      "a": "NONE",
      "i": "none.png"
    },
    {
      "id": 1,
      "n": "Hampala barb",
      "a": "Hampala macrolepidota",
      "i": "hampala.png"
    },
    {
      "id": 2,
      "n": "Giant snakehead",
      "a": "Channa micropeltes",
      "i": "toman.png"
    },
    {
      "id": 3,
      "n": "Clown featherback",
      "a": "Chitala ornata",
      "i": "belida.png"
    }
  ]
}

我正在尝试将键"id""a"提取到 python 字典中,如下所示:

fish_id = {
  0 : "NONE",
  1 : "Hampala macrolepidota",
  2 : "Channa micropeltes",
  3 : "Chitala ornata"
}
import json

data = """{
  "fish": [
    {
      "id": 0,
      "n": "NO INFORMATION",
      "a": "NONE",
      "i": "none.png"
    },
    {
      "id": 1,
      "n": "Hampala barb",
      "a": "Hampala macrolepidota",
      "i": "hampala.png"
    },
    {
      "id": 2,
      "n": "Giant snakehead",
      "a": "Channa micropeltes",
      "i": "toman.png"
    },
    {
      "id": 3,
      "n": "Clown featherback",
      "a": "Chitala ornata",
      "i": "belida.png"
    }
  ]
}"""

data_dict = json.loads(data)
fish_id = {}
for item in data_dict["fish"]:
    fish_id[item["id"]] = item["a"]

print(fish_id)

首先创建一个 fish.json 文件,得到你的 JSON 文件;

with open('fish.json') as json_file:
    data = json.load(json_file)

然后,带上你的鱼;

fish1 = data['fish'][0]
fish2 = data['fish'][1]
fish3 = data['fish'][2]
fish4 = data['fish'][3]

之后只为每个值取值,因为您只想根据值创建字典;

value_list1=list(fish1.values())
value_list2=list(fish2.values())
value_list3=list(fish3.values())
value_list4=list(fish4.values())

最后,创建 fish_id 字典;

fish_id = {
    f"{value_list1[0]}" : f"{value_list1[2]}",
    f"{value_list2[0]}" : f"{value_list2[2]}",
    f"{value_list3[0]}" : f"{value_list3[2]}",
    f"{value_list4[0]}" : f"{value_list4[2]}",
}

如果你跑;

print(fish_id)

结果会像下面这样,但是如果你可以使用 for 循环,它会更有效。

{'0':'NONE','1':'Hampala macrolepidota','2':'Channa micropeltes','3':'Chitala ornata'}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM