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

Python如何在未知外层键的前提下提取字典字符串中所有shade值

从符合Python字典格式的字符串中提取所有shade字段的方案

方案1:基于现有exec逻辑改造

无需提前获知外层键的具体值,直接遍历字典的values()方法即可拿到所有内层字典,提取对应shade字段即可:

text = 'colors = {\r\n\r\n    "1234": {\r\n        "shade": [1, 2, 3]},   "23": {"shade": [3,4,5]}\r\n}\r\n'
exec(text)
for inner_dict in colors.values():
    print(inner_dict["shade"])

运行后输出和要求的结果一致:

[1, 2, 3]
[3, 4, 5]

方案2:更安全的无exec实现

exec执行未知来源的字符串存在代码注入风险,推荐使用ast.literal_eval仅解析字面量内容,安全性更高:

import ast

text = 'colors = {\r\n\r\n    "1234": {\r\n        "shade": [1, 2, 3]},   "23": {"shade": [3,4,5]}\r\n}\r\n'
# 提取等于号后的字典字面量部分
dict_content = text.split('=', 1)[1].strip()
colors = ast.literal_eval(dict_content)
for inner_dict in colors.values():
    print(inner_dict["shade"])

兼容异常场景

如果存在部分外层字典不含shade字段的情况,可以增加字段存在判断避免报错:

for inner_dict in colors.values():
    if "shade" in inner_dict:
        print(inner_dict["shade"])

内容的提问来源于stack exchange,提问作者enten77

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 07:09:03