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

如何基于列表参数动态索引Python嵌套字典(规避eval)

实现多层嵌套字典的键值修改(无需eval)

完全可以实现,而且写法比eval更安全、更直观。核心思路是逐层遍历嵌套键,定位到最后一层的父字典,再修改目标键的值,具体代码如下:

def dict_idx(arr: list[dict], subkeys: list[str]) -> list[dict]:
    for item in arr:
        current_dict = item
        # 遍历除最后一个键外的所有层级,深入到目标键所在的父字典
        for key in subkeys[:-1]:
            current_dict = current_dict[key]
        # 处理最后一个键对应的值
        final_key = subkeys[-1]
        current_dict[final_key] = current_dict[final_key].replace("_", " ")
    return arr

代码逻辑说明:

  • 对于列表中的每个字典item,先初始化current_dict为当前字典;
  • 循环subkeys的前n-1个键(subkeys[:-1]),每次将current_dict更新为下一层嵌套的字典,直到到达最后一个键所在的层级;
  • 最后直接修改current_dict中final_key对应的值,把下划线替换为空格。

比如传入subkeys=['user','location']时,代码会先拿到item['user']这个字典,再修改它的location键值,完全符合你要的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:17:18