如何在python中从json文件提取数据
我在一个项目中有一个下面的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
"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]
这包含您的键值