Python Json dict Variable



我正在尝试一个循环,稍后我将创建该循环,以给出Api-Post请求的名称(单个((此处用于打印测试(,并在循环的每一圈中更改变量的Vaule。现在我在异常中运行:KeyError 0。

我的问题是,有没有一个变量可以用于[0](Key_name(

有人能帮忙吗?

file.json:

(缩短,实际文件更长(

{ "_meta": {
"Example1": {
"00000001": {
"name": "Test-01",
},
"00000002": {
"name": "Test-02"
},
},
}
import json
data = json.load(open("file.json"))
name = data["_meta"]["Example1"][0]["name"]

print(f"Name: {name}")

异常:KeyError 0

编辑

"Example1": {
"00000001": {
"name": "Test-01",
},
"00000002": {
"name": "Test-02"
"uuid": "Test-uuid"
"config": {
"ipAdresse": "Test-Ip"
},
},
},
}

问题是[0]Example1元素的值不是列表而是dict。请尝试使用dict.items()

for key, value in data["_meta"]["Example1"].items():
print(f"Key: {key}nName: {value['name']}")

编辑以获取以下注释:

因此,您需要测试dict项中是否存在密钥,以避免key not found错误。您只需检查if keyname in dict即可完成此操作

请参阅下面的扩展示例。。。

data = {
"_meta":{
"Example1":{
"00000001":{
"name":"Test-01"
},
"00000002":{
"name":"Test-02",
"uuid":"Test-uuid",
"config":{
"ipAdresse":"Test-Ip"
}
}
}
}
}
for key, value in data["_meta"]["Example1"].items():
print(f"Key: {key}n  Name: {value['name']}")
# check if the key exists. fe 00000001 does not have the uuid nor config key
if "uuid" in value:
print(f"  uuid: {value['uuid']}")
if "config" in value and "ipAdresse" in value["config"]:
print(f"  ipAdresse: {value['config']['ipAdresse']}")

输出

Key: 00000001
Name: Test-01
Key: 00000002
Name: Test-02
uuid: Test-uuid
ipAdresse: Test-Ip

最新更新