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

Python中如何基于JSON数组某key的值查询对应元素另一key的值

报错原因

你搞混了 json.dumps() 和 json.loads() 的作用:

  • json.dumps() 是把Python对象转为JSON字符串,你执行完 jsonObject = json.dumps(response) 后,jsonObject 已经是纯字符串类型,只能用整数下标访问字符,你尝试用字符串作为索引取值,自然会抛出 string indices must be integers 错误。
  • 哪怕需要做格式转换,JSON字符串转Python对象用的是 json.loads(),和dumps作用完全相反。
  • 额外说一句,你写的代码里 response 本身已经是Python列表+字典结构,根本不需要做JSON转换,直接遍历就能用。

正确实现代码

import json

# 如果你实际拿到的response是接口返回的JSON字符串,才需要执行下面的转换
# 示例:response_str = '[{"id": "1", "name": "TimeCheck1"},{"id": "2", "name": "TimeCheck2"}]'
# response = json.loads(response_str)

# 你当前代码里的response已经是可直接操作的Python对象,直接遍历即可
response = [{'id': '1', 'name': 'TimeCheck1'},{'id': '2', 'name': 'TimeCheck2'}]
target_name = 'TimeCheck1'
target_id = None

for item in response:
    if item['name'] == target_name:
        target_id = item['id']
        break

if target_id:
    print(target_id)
else:
    print("no")

补充说明

你原来的 if a in jsonObject 逻辑也不对,这只是判断字符串里有没有对应子串,根本不是判断列表元素的name字段是否匹配,哪怕没有类型报错,也拿不到你要的id结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 12:24:01