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

Python批量提取JSON数组元素pk值及TypeError报错解决

报错原因

你触发TypeError: the JSON object must be str, bytes or bytearray, not dict的原因非常明确:results变量已经是完成解析的Python字典对象了,不需要再调用json.loads()做解析。
json.loads()仅用于把JSON格式的字符串、字节内容转换为Python原生的字典/列表结构,给它传入已经解析好的字典,必然会报类型错误。

正确实现方案

直接使用Python列表推导式遍历users数组提取所有pk值即可,不需要提前知道数组长度,不管数组里有几个、几百个元素都能一次性批量提取,对应你熟悉的R语言批量取字段的效果:

# 移除多余的json.loads调用,直接操作已解析的results字典
ids = [user['pk'] for user in results['users']]
print(ids)

针对你给出的示例数据,运行后输出结果为:

[54297756964, 182625349, 7324707263]
补充说明
  • 列表推导式会自动遍历results['users']下的所有元素,不需要手动写索引、不需要提前统计数组总长度
  • 如果实际数据里可能存在缺失pk字段的异常用户对象,可以加判断做容错,避免运行中断:
# 容错版本:自动跳过缺失pk字段的用户项
ids = [user['pk'] for user in results['users'] if 'pk' in user]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:57:11