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

Python JSON解码缺失值:REST请求日志遍历仅获键名问题排查

问题分析与解决

嘿,我马上帮你理清这个问题!你遇到的情况其实是对Python字典遍历逻辑的小误解,咱们一步步拆解:

问题根源

你看到print(request["request"]["input"])输出的是{text:sample string} {text:fake string} ...,这说明request["request"]["input"]本质是一个字典(dict),而不是列表(list)。在Python里,直接遍历字典(比如for z in 字典对象)时,默认只会遍历字典的键(keys),所以你循环里打印的z其实就是字典的键"text",而不是对应的值。

验证方法

你可以先加一行代码确认它的类型:

r = requests.get(url, auth=(a, b))
parsed = json.loads(r.content)
for request in parsed['logs']:
    input_data = request["request"]["input"]
    print(type(input_data))  # 会输出 <class 'dict'>,确认是字典

解决代码

根据你的需求,有两种常用的修改方式:

1. 同时获取键和值

如果想同时输出键(比如"text")和对应的值(比如"sample string"),可以用字典的.items()方法:

r = requests.get(url, auth=(a, b))
parsed = json.loads(r.content)
for request in parsed['logs']:
    input_dict = request["request"]["input"]
    for key, value in input_dict.items():
        print(f"{key}: {value}")  # 输出类似 text: sample string

2. 只获取值

如果只需要输出对应的值(比如"sample string"),就用.values()方法:

r = requests.get(url, auth=(a, b))
parsed = json.loads(r.content)
for request in parsed['logs']:
    input_dict = request["request"]["input"]
    for value in input_dict.values():
        print(value)  # 直接输出 sample string、fake string 等

这样就能得到你想要的内容啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:39:05