【发布时间】:2019-11-15 10:58:29
【问题描述】:
我在一个项目中有一个下面的 json 配置文件。
"Jackets": [
{
"GreenHSV": [30, 150, 72, 80, 255, 255]
},
{
"OrangeHSV": [0, 150, 72, 25, 255, 255]
}
]
我必须在 python 代码中获取 GreenHSV (30, 150, 72, 80, 255, 255) 和 OrangeHSV 0, 150, 72, 25, 255, 255 的每个值,请记住,将来可以添加另一个 HSV,如下所示
{
"RedHSV": [0, 150, 72, 25, 255, 255]
}
因此代码应该能够读取RedHSV 值,而无需对代码进行任何更改。在上面的 JSON 中,Jackets 基本上是一个包含dict of list 的list(如果我没记错的话)。要获取每种颜色的 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])
我的方法是首先将for 与len 的range 和Jackets 放在一个for 循环中,这样如果将来添加新颜色,它将循环3 次。
之后我提取了包含此值{'GreenHSV': [30, 150, 72, 80, 255, 255]} 的hsv_dict。现在,虽然我应该得到字典的键名,因为它将是GreenHSV 或任何下一个颜色,这样我就可以提取它的值,这将是列表([30, 150, 72, 80, 255, 255]),然后我可以轻松获取列表值.但看起来我的方法是错误的。
谁能指导我。谢谢
【问题讨论】:
标签: python json list dictionary