Python 从json输出中查找值
我有一个url的以下api输出。 我需要这些区域中所有“区域”的特定值,但我无法获取它。 你能建议我需要在这里做些什么改变吗Python 从json输出中查找值,python,arrays,json,Python,Arrays,Json,我有一个url的以下api输出。 我需要这些区域中所有“区域”的特定值,但我无法获取它。 你能建议我需要在这里做些什么改变吗 dict =[ { "Fabric": "Madgth", "Zones": "rqu_kan23_34334_6666_56713", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:65:36:e4:20:ea" }, { "Fabric": "Madgth", "Zones": "rqu_kan23_C9AE9F10_666
dict =[ { "Fabric": "Madgth", "Zones": "rqu_kan23_34334_6666_56713", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:65:36:e4:20:ea" }, { "Fabric": "Madgth", "Zones": "rqu_kan23_C9AE9F10_6666_ytr9", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:69:36:e4:20:ea" }, { "Fabric": "Madgth", "Zones": "sdgh_5672_kan23_asd0", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:62:46:e0:70:bc" }, { "Fabric": "Madgth", "Zones": "fdsf_ytr2_kan23_dsd1", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:6a:46:e0:70:t5" }, { "Fabric": "Madgth", "Zones": "asdasd_5673_kan21_sdg0", "Members": "00:00:00:00:c9:ae:9f:14 40:00:01:63:47:60:04:b2" }, { "Fabric": "Madgth", "Zones": "FGF546_ytr3_kan21_SHQ1", "Members": "00:00:00:00:c9:ae:9f:14 40:00:01:6b:47:60:04:b2" }, { "Fabric": "sdfsdf", "Zones": "rqu_kan23_C9AE9F11_6666_5678", "Members": "00:00:00:00:c9:ae:9f:11 40:00:01:60:36:e4:20:ea" }, { "Fabric": "sdfsdf", "Zones": "rqu_kan23_C9AE9F11_6666_ytr12", "Members": "00:00:00:00:c9:ae:9f:11 40:00:01:6c:36:e4:20:ea" }, { "Fabric": "sdfsdf", "Zones": "FGF1166_5673_kan23_SHQ0", "Members": "00:00:00:00:c9:ae:9f:11 40:00:01:63:46:e0:70:bc" }, { "Fabric": "sdfsdf", "Zones": "FGF1166_ytr3_kan23_SHQ1", "Members": "00:00:00:00:c9:ae:9f:11 40:00:01:6b:46:e0:70:bc" }, { "Fabric": "sdfsdf", "Zones": "FGF546_5670_kan21_SHQ0", "Members": "00:00:00:00:c9:ae:9f:15 40:00:01:60:47:60:04:b2" }, { "Fabric": "sdfsdf", "Zones": "FGF546_ytr0_kan21_SHQ1", "Members": "00:00:00:00:c9:ae:9f:15 00:00:00:00:47:60:04:b2" } ]
print dict['Zones']
我似乎有以下错误
文件“test.py”,第3行,在
print dict['Zones']TypeError:元组索引必须是整数,而不是str
这只是一张单子,你必须像这样做
dict[0]['Zones']
样本与错误消息不匹配。给出的示例是对应于元组的字典和错误消息列表
要获取所有“区域”
请使用
zones = [i['Zones'] for i in dict if 'Zones' in i]
请不要使用dict
作为变量名
关于评论中的澄清
In [16]: dict =[ { "Fabric": "Madgth", "Zones": "rqu_kan23_34334_6666_56713", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:65:36:e4:20:ea" }, {
...: "Fabric": "Madgth", "Zones": "rqu_kan23_C9AE9F10_6666_ytr9", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:69:36:e4:20:ea" }, { "Fabri
...: c": "Madgth", "Zones": "sdgh_5672_kan23_asd0", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:62:46:e0:70:bc" }, { "Fabric": "Madgth", "
...: Zones": "fdsf_ytr2_kan23_dsd1", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:6a:46:e0:70:t5" }, { "Fabric": "Madgth", "Zones": "asdasd
...: _5673_kan21_sdg0", "Members": "00:00:00:00:c9:ae:9f:14 40:00:01:63:47:60:04:b2" }, { "Fabric": "Madgth", "Zones": "FGF546_ytr3_kan21_S
...: HQ1", "Members": "00:00:00:00:c9:ae:9f:14 40:00:01:6b:47:60:04:b2" }, { "Fabric": "sdfsdf", "zones": "rqu_kan23_C9AE9F11_6666_5678", "
...: Members": "00:00:00:00:c9:ae:9f:11 40:00:01:60:36:e4:20:ea" }, { "Fabric": "sdfsdf", "Zones": "rqu_kan23_C9AE9F11_6666_ytr12", "Member
...: s": "00:00:00:00:c9:ae:9f:11 40:00:01:6c:36:e4:20:ea" }, { "Fabric": "sdfsdf", "Zones": "FGF1166_5673_kan23_SHQ0", "Members": "00:00:0
...: 0:00:c9:ae:9f:11 40:00:01:63:46:e0:70:bc" }, { "Fabric": "sdfsdf", "Zones": "FGF1166_ytr3_kan23_SHQ1", "Members": "00:00:00:00:c9:ae:9
...: f:11 40:00:01:6b:46:e0:70:bc" }, { "Fabric": "sdfsdf", "Zones": "FGF546_5670_kan21_SHQ0", "Members": "00:00:00:00:c9:ae:9f:15 40:00:01
...: :60:47:60:04:b2" }, { "Fabric": "sdfsdf", "Zones": "FGF546_ytr0_kan21_SHQ1", "Members": "00:00:00:00:c9:ae:9f:15 00:00:00:00:47:60:04:
...: b2" } ]
In [17]: print dict['Zones']
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-17-cccdb30efad8> in <module>()
----> 1 print dict['Zones']
TypeError: list indices must be integers, not str
[16]:dict=[{“Fabric”:“Madgth”,“Zones”:“rqu_kan23_34334_6666_56713”,“Members”:“00:00:00:c9:ae:9f:10 40:00:01:65:36:e4:20:ea”{
“织物”:“Madgth”,“Zones”:“rqu_kan23_C9AE9F10_6666_ytr9”,“成员”:“00:00:00:c9:ae:9f:10 40:00:01:69:36:e4:20:ea”},{“Fabri”
…c:“Madgth”,“Zones:“sdgh_5672_kan23_asd0”,“Members:“00:00:00:00:c9:ae:9f:10 40:00:01:62:46:e0:70:bc”},{“Fabric:“Madgth”,”
区域“:”fdsf_ytr2_kan23_dsd1“,”成员“:”00:00:00:c9:ae:9f:10 40:00:01:6a:46:e0:70:t5“,”,“{”结构“:”制造“,”区域“:”asdasd“,”
…成员:00:00:00:00:c9:ae:9f:14 40:00:01:63:47:60:04:b2“},{“织物”:“制造”,“分区”:“FGF546”ytr3\U kan21\U S
…HQ1,“成员”:“00:00:00:00:c9:ae:9f:14 40:00:01:6b:47:60:04:b2”},{“结构”:“sdfsdf”,“区域”:“rqu_kan23_C9AE9F11_6666_5678”
…:成员“:”00:00:00:c9:ae:9f:11 40:00:01:60:36:e4:20:ea“},{”结构“:”sdfsdf“,”区域“:”rqu_kan23_C9AE9F11_6666_ytr12”,“成员”
…s:“00:00:00:00:c9:ae:9f:11 40:00:01:6c:36:e4:20:ea”},{“结构”:“sdfsdf”,“分区”:“FGF1166_5673_kan23_SHQ0”,“成员”:“00:00:0”
…0:00:c9:ae:9f:11 40:00:01:63:46:e0:70:bc“},{“结构”:“sdfsdf”,“分区”:“FGF1166_ytr3_kan23_SHQ1”,“成员”:“00:00:00:00:c9:ae:9”
…:f:11 40:00:01:6b:46:e0:70:bc“},{“结构”:“sdfsdf”,“分区”:“FGF546_5670_kan21_SHQ0”,“成员”:“00:00:00:c9:ae:9f:15 40:00:01”
…::60:47:60:04:b2“},{“结构”:“sdfsdf”,“分区”:“FGF546”ytr0\U kan21\U SHQ1,“成员”:“00:00:00:00:c9:ae:9f:15 00:00:00:00:47:60:04:
…:b2“}]
在[17]中:打印dict['Zones']
---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在()
---->1打印指令[“区域”]
TypeError:列表索引必须是整数,而不是str
您提供的dict在声明中有一些错误,以下是修复的错误:
dict =[ { "Fabric": "Madgth", "Zones": "rqu_kan23_34334_6666_56713", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:65:36:e4:20:ea" }, { "Fabric": "Madgth", "Zones": "rqu_kan23_C9AE9F10_6666_ytr9", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:69:36:e4:20:ea" }, { "Fabric": "Madgth", "Zones": "sdgh_5672_kan23_asd0", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:62:46:e0:70:bc" }, { "Fabric": "Madgth", "Zones": "fdsf_ytr2_kan23_dsd1", "Members": "00:00:00:00:c9:ae:9f:10 40:00:01:6a:46:e0:70:t5" }, { "Fabric": "Madgth", "Zones": "asdasd_5673_kan21_sdg0", "Members": "00:00:00:00:c9:ae:9f:14 40:00:01:63:47:60:04:b2" }, { "Fabric": "Madgth", "Zones": "FGF546_ytr3_kan21_SHQ1", "Members": "00:00:00:00:c9:ae:9f:14 40:00:01:6b:47:60:04:b2" }, { "Fabric": "sdfsdf", "zones": "rqu_kan23_C9AE9F11_6666_5678", "Members": "00:00:00:00:c9:ae:9f:11 40:00:01:60:36:e4:20:ea" }, { "Fabric": "sdfsdf", "Zones": "rqu_kan23_C9AE9F11_6666_ytr12", "Members": "00:00:00:00:c9:ae:9f:11 40:00:01:6c:36:e4:20:ea" }, { "Fabric": "sdfsdf", "Zones": "FGF1166_5673_kan23_SHQ0", "Members": "00:00:00:00:c9:ae:9f:11 40:00:01:63:46:e0:70:bc" }, { "Fabric": "sdfsdf", "Zones": "FGF1166_ytr3_kan23_SHQ1", "Members": "00:00:00:00:c9:ae:9f:11 40:00:01:6b:46:e0:70:bc" }, { "Fabric": "sdfsdf", "Zones": "FGF546_5670_kan21_SHQ0", "Members": "00:00:00:00:c9:ae:9f:15 40:00:01:60:47:60:04:b2" }, { "Fabric": "sdfsdf", "Zones": "FGF546_ytr0_kan21_SHQ1", "Members": "00:00:00:00:c9:ae:9f:15 00:00:00:00:47:60:04:b2" } ]
现在,像这样的简单代码可以:
list = []
for i in dict:
list.append(i["Zones"])
您可以简单地循环列表并打印它
for item in dict:
print item['Zones']
但不建议使用
dict
作为变量名;) 使用列表理解[i['Zones']表示di中的i]
并且不要使用dict
表示变量名,dict是内置的。您提供了一个列表,并想知道如何获得元组索引。该代码不会产生该错误。相反,它会产生语法错误。因为您有几个语法错误。@StefanPochmann错误仅与元组相关。请检查它的列表中只知道的变量。查看问题中的dict
。这是字典列表。他得到了TypeError:tuple索引
而不是TypeError:list索引
,代码示例只能生成TypeError:list索引
。可能错误地粘贴了样品。它可能是一个元组,像dict=({…},{…},)
。我把dict修好了一点,现在我没有收到你们争论的任何错误?