如何在python中从json文件提取数据

如何在python中从json文件提取数据,python,json,list,dictionary,Python,Json,List,Dictionary,我在一个项目中有一个下面的json配置文件 "Jackets": [ { "GreenHSV": [30, 150, 72, 80, 255, 255] }, { "OrangeHSV": [0, 150, 72, 25, 255, 255] } ] 我必须在python代码中获得GreenHSV(30、150、72、80、255、255)和橙色HSV的每个值,记住,将来可以像下面这样添加另一个HSV { "RedHS

我在一个项目中有一个下面的json配置文件

"Jackets": [
    {
        "GreenHSV": [30, 150, 72, 80, 255, 255]

    },
    {
        "OrangeHSV": [0, 150, 72, 25, 255, 255]

    }
]
我必须在python代码中获得
GreenHSV
(30、150、72、80、255、255)
橙色HSV
的每个值,记住,将来可以像下面这样添加另一个HSV

{
    "RedHSV": [0, 150, 72, 25, 255, 255]

}
因此,代码应该能够读取
RedHSV
值,而无需对代码进行任何更改。在上面的JSON中,
Jackets
基本上是一个
列表
,它包含
列表的目录
(如果我没有错的话)。要获得每种颜色的HSV值,我的方法如下:

for i in range(len(config["Jackets"])):
    print(config["Jackets"][i])
    hsv_dict = config["Jackets"][i]
    print(hsv_dict.keys())
    name = hsv_dict.keys()
    hsv_color_name = hsv_dict[name]
    print(hsv_color_name[0], hsv_color_name[1], hsv_color_name[2])
    print(hsv_color_name[3], hsv_color_name[4], hsv_color_name[5])
我的方法是首先在
夹克
len
范围
中设置
for
循环,这样,如果将来添加新颜色,它将循环3次

在此之后,我提取了
hsv_dict
,其中包含此值
{'GreenHSV':[30、150、72、80、255、255]}
。现在,我想我应该得到dict的键名,因为它将是
GreenHSV
或任何下一种颜色,这样我可以提取它的值,它将是list
([30,150,72,80,255,255])
,然后我可以很容易地得到列表值。但看起来我的方法是错误的

谁能给我指路吗。谢谢

hsv_dict = config["Jackets"][i]
i
为0时,将导致
hsv_dict
包含
{'GreenHSV':[30,150,72,80,255,255]}

代码中的问题是,在
name=hsv_dict.keys()
之后,
name
包含一个
dict_keys
对象,该对象将生成所有键

您需要提取第一个密钥,这需要

name = list(hsv_dict.keys())[0]
我不知道你为什么要使用一个字典列表,每个字典只有一个条目。我觉得下面的布局更简单、更简洁:

"Jackets":  {
    "GreenHSV": [30, 150, 72, 80, 255, 255],
    "OrangeHSV": [0, 150, 72, 25, 255, 255]
}
hsv_dict.keys()

 list(hsv_dict.keys())
由于这是一个列表,您可以获得如下第0个参数:

list(hsv_dict.keys())[0]
这包含您的键值