A有这样的数组
{
"records":[
{
"domain":"example.com",
"fqdn":"111",
},
{
"domain":"example.com",
"fqdn":"2222",
},
{
"domain":"example.com",
"fqdn":"333",
},
],
}
如何使用fqdn ==“333”获取元素索引?
答案 0 :(得分:3)
您可以将列表理解与enumerate
:
[x for x, y in enumerate(data['records']) if y['fqdn'] == '333'][0]
但是,对于不存在的情况,你必须抓住IndexError
。
根据评论中的建议,您可以通过使用生成器和IndexError
来避免重复目标值的冗余查找和捕获next
的问题:
next((x for x, y in enumerate(data['records']) if y['fqdn'] == '333'), None)
答案 1 :(得分:1)
好像你想要这样的东西,
>>> d = {
"records":[
{
"domain":"example.com",
"fqdn":"111",
},
{
"domain":"example.com",
"fqdn":"2222",
},
{
"domain":"example.com",
"fqdn":"333",
},
],
}
>>> for i in d.values():
for s,m in enumerate(i):
if m['fqdn'] == "333":
print(s)
2
答案 2 :(得分:0)
li = list(di['records'])
for x in li:
for k, v in x.items():
if v == '333':
print k, v