You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python动态提取JSON中服务器的地址与状态字段?

解决shell.Dict遍历提取字段的问题

我来帮你搞定这个问题!首先咱们先搞清楚你报错的核心原因:当你直接写for x in json_variable时,遍历到的其实是字典的键(也就是"server01"、"server02"这类字符串),你试着对字符串用x["address"]自然会触发类型错误——字符串可没有这种键索引的用法呀。再加上你这个是shell.Dict对象,它的遍历逻辑和标准Python dict一致,但得用正确的方法拿到对应的值。

正确的动态遍历方法

你可以用items()方法来遍历字典的键值对,这样就能同时拿到服务器名称和对应的信息字典,完美实现动态处理:

for server_name, server_info in json_variable.items():
    print(f"{server_info['address']} --> {server_info['state']}")

如果只需要服务器的信息(不需要名称),也可以直接用values()方法遍历所有值对象:

for server_info in json_variable.values():
    print(f"{server_info['address']} --> {server_info['state']}")

这两段代码都会输出你想要的结果:

server01:5454 --> online
server02:5454 --> online
server03:5454 --> online

为什么原来的代码不行?

再回头看你原来的循环:

for x in json_variable:
    print(x["address"])

这里的x是"server01"、"server02"这类字符串,你试图对字符串用字典式的键索引,Python当然会报错(你遇到的'shell.Dict' object is not iterable是这个特殊Dict对象在直接遍历键时的表现,但核心逻辑是没拿到值对象)。

内容的提问来源于stack exchange,提问作者S.D.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:27:47