hrl = {
"hourly": [
{
"FCT": {"time":"", "cvl": "6am"},
"wind": "brzy",
"tmp": {"brm":"hot", "cel":"37"},
"FCT": {"time": "", "cvl":"7am"}
}
#.... list continues ..
]
}
print hrl["hourly"][0]["FCT"]["cvl"]
print hrl["hourly"][0]["tmp"]["cel"]
--output:--
7am
37
再三考虑,您似乎没有发布非常好的数据结构表示。如果它看起来像这样更有意义:
hrl = {
"hourly": [
{
"FCT": {"time":"", "cvl": "6am"},
"wind": "brzy",
"tmp": {"brm":"hot", "cel":"37"},
},
{
"FCT": {"time":"", "cvl": "7am"},
"wind": "windy",
"tmp": {"brm":"cool", "cel":"20"},
}
]
}
print hrl["hourly"][0]["FCT"]["cvl"]
print hrl["hourly"][0]["tmp"]["cel"]
print hrl["hourly"][1]["FCT"]["cvl"]
print hrl["hourly"][1]["tmp"]["cel"]
--output:--
6am
37
7am
20
results = [
(_dict["FCT"]["cvl"], _dict["tmp"]["cel"])
for _dict in hrl["hourly"]
]
print results
--output:--
[('6am', '37'), ('7am', '20')]
hrl["hourly"] 是一个字典数组。在 python 中,您可以通过使用 for-in 循环在不使用索引的情况下迭代数组:
for color in ["red", "green", "blue"]:
print color
--output:--
red
green
blue
因此,您只需要获取数组 hrl["hourly"],然后使用 for-in 循环来选择数组中的每个字典——不需要整数索引。
一个提示:你感兴趣的数据结构的唯一部分是数组,所以你甚至不应该说你的数据结构是一个字典。写吧:
arr = hrl["hourly"]
现在您正在处理一个数组,因此您不必担心一些嵌套。更进一步,你可以写:
outer_dict = arr[0]
inner_dict_hour = outer_dict["FCT"]
inner_dict_tmp = outer_dict["tmp"]
现在你有两个非嵌套字典。例如,获取温度很容易:
tmp = inner_dict_tmp["cel"]
从那里,您可以替换 inner_dict_tmp 等于:
tmp = inner_dict_tmp ["cel"]
|
v
tmp = outer_dict["tmp"] ["cel"]
并替换outer_dict:
tmp = outer_dict ["tmp"]["cel"]
|
v
tmp = arr[0] ["tmp"]["cel"]
然后替换arr:
tmp = arr [0]["tmp"]["cel"]
|
v
tmp = hrl["hourly'] [0]["tmp"]["cel"]