Python 标识项目在json文件中的位置
假设我有以下json文件。使用Python 标识项目在json文件中的位置,python,json,dictionary,indexing,dictionary-comprehension,Python,Json,Dictionary,Indexing,Dictionary Comprehension,假设我有以下json文件。使用data1[“租户”][1][name']我可以选择uniquename2。有没有办法通过循环文档来收集“1”号 { "tenants": [{ "key": "identifier", "name": "uniquename", "image": "url&
data1[“租户”][1][name']
我可以选择uniquename2。有没有办法通过循环文档来收集“1”号
{
"tenants": [{
"key": "identifier",
"name": "uniquename",
"image": "url",
"match": [
"identifier"
],
"tags": [
"tag1",
"tag2"
]
},
{
"key": "identifier",
"name": "uniquename2",
"image": "url",
"match": [
"identifier1",
"identifier2"
],
"tags": ["tag"]
}
]
}
简而言之:data1[“租户”][1]['name']
=uniquename2data1[“租户”][0]['name']
=uniquename
我怎样才能知道哪个号码有哪个名字。因此,如果我有uniquename2,那么它对应的数字/索引是什么?假设您已经将json转换为字典,这就是如何获取列表中某个名称的首个出现的索引(这取决于名称实际上是唯一的):
您可以迭代租户以将索引映射到名称
数据={
“租户”:[{
“密钥”:“标识符”,
“名称”:“唯一名称”,
“图像”:“url”,
“匹配”:[
“标识符”
],
“标签”:[
“tag1”,
“tag2”
]
},
{
“密钥”:“标识符”,
“名称”:“uniquename2”,
“图像”:“url”,
“匹配”:[
“识别者1”,
“标识符2”
],
“标记”:[“标记”]
}
]
}
对于索引,枚举中的租户(数据['tenants']):
打印(索引,租户['name'])
输出
0唯一名称
1唯一名称2
data = {
"tenants": [{
"key": "identifier",
"name": "uniquename",
"image": "url",
"match": [
"identifier"
],
"tags": [
"tag1",
"tag2"
]
},
{
"key": "identifier",
"name": "uniquename2",
"image": "url",
"match": [
"identifier1",
"identifier2"
],
"tags": ["tag"]
}
]
}
def index_of(tenants, tenant_name):
try:
return tenants.index(
next(
tenant for tenant in tenants
if tenant["name"] == tenant_name
)
)
except StopIteration:
raise ValueError(
f"tenants list does not have tenant by name {tenant_name}."
)
index_of(data["tenants"], "uniquename") # 0