为了账号安全,请及时绑定邮箱和手机立即绑定

python:如何使用循环访问嵌套字典中的值

python:如何使用循环访问嵌套字典中的值

墨色风雨 2023-12-26 17:06:10
给定以下 python 字典。dict = {'site1': {'status': 200}, 'site2': {'status': 200}, 'site3': {'status': 200}}如何迭代和访问子字典的值?for sub in dict.items():    print(sub["status"])给出错误:元组索引必须是整数或切片,而不是 str期望的结果:打印 3 个字符串,指示每个子字典的站点状态。
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

items()返回一个 (key, value) 的元组,所以 for 循环应该是这样的:


dct = {'site1': {'status': 200}, 'site2': {'status': 200}, 'site3': {'status': 200}}


for key, value in dct.items():

    print(value['status'])

出去:


200

200

200


查看完整回答
反对 回复 2023-12-26
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

for sub in dict.values():

  print(sub)

#that will gives you list of dictionaries

{'status': 200} {'status': 200} {'status': 200} 

现在打印键值


for sub in dict.values():

   print(sub['status'])


查看完整回答
反对 回复 2023-12-26
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

dict.items()返回可迭代的元组对(key, value)。在这里你想进一步索引一个value,所以你应该这样做:

for sub in dict.values(): 
   print(sub["status"])

仅迭代值。

或者:

for key, sub in dict.items():
    print(sub["status"])

解压元组(这是人们在处理 时通常所做的事情dict.items())。

当然,您也可以先对元组建立索引 -sub[1]["status"]但它不那么可读。


PS 你永远不应该只命名你的字典dict(也不应该列出list) - 它是一个用于表示类型的内置名称。更改它可能会在以后引入错误。


查看完整回答
反对 回复 2023-12-26
  • 3 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信