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

Python中无法从JSON解析后的列表数据中获取指定键值的技术求助

问题分析与解决方案

嗨,我一眼就看出问题出在哪了——你用json.loads解析后得到的是一个列表(list),而不是单个字典(dict),所以直接用['time_created']这种字符串索引肯定会报错,毕竟列表只能用整数索引或者切片来访问元素。

看你给出的解析后输出:

[{'archival_state': None, 'etag': None, 'md5': None, 'name': '.passwd.json', 'size': 1447, 'storage_tier': None, 'time_created': '2022-07-22T07:09:47.342000+00:00', 'time_modified': None}]

这是一个包裹着单个字典的列表,所以得先拿到列表里的字典元素,再去取对应的键值。

给你两个简单的解决办法:

  • 方法一:直接取列表第一个元素(适合确定列表只有一个元素的情况)
    把最后一行代码改成这样:

    print(time_file1[0]['time_created'])
    

    这里的[0]就是取列表的第一个(也是唯一一个)字典元素,之后再用['time_created']就能拿到你要的时间值了。

  • 方法二:遍历列表(适合列表可能有多个元素的场景)
    如果以后你的JSON数据里可能包含多个文件信息,用遍历的方式更稳妥:

    for file_item in time_file1:
        print(file_item['time_created'])
    

    这样不管列表里有几个字典,都能逐个取出对应的time_created值。

另外补充一句,虽然你没贴print(type(file_data))的输出,但从json.loads成功解析来看,file_data确实是合法的JSON字符串,只是它的顶层结构是数组(对应Python的列表),而不是单个JSON对象(对应Python的字典),这就是你之前直接用键名取不到值的核心原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:17:47