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

Python读取JSON文件中Amazon节点下Login字段的方法求助

获取JSON中Amazon节点下的Login字段

错误原因分析

你尝试的Amazon_content = data.get("Amazon", "Login")用法有误:dict.get()的第二个参数是键不存在时的默认返回值,并非用来嵌套访问子键。这个写法要么返回Amazon对应的列表(如果存在),要么返回字符串"Login",完全无法定位到Login字段。

正确取值逻辑

观察你的JSON结构:Amazon是一个列表,列表内包含1个字典,字典里才有Login和Password字段。因此需要分两步访问:先取列表元素,再取字典中的键。

直接索引(结构确定时使用)

如果确认Amazon列表始终有且仅有一个元素,可以直接通过索引定位:

amazon_login = data["Amazon"][0]["Login"]

容错式获取(避免结构异常报错)

如果担心Amazon节点不存在、列表为空或Login字段缺失,用链式get()做容错处理:

# 若Amazon不存在则返回空列表,列表为空则返回空字典,Login不存在则返回提示文本
amazon_login = data.get("Amazon", [{}])[0].get("Login", "未找到Login字段")

优化后的完整代码

替换你原有的字符串拼接逻辑,直接提取目标字段,代码更简洁易维护:

import json

def json_read():
    with open("data.json", "r") as f:
        data = json.load(f)
        # 读取Amazon节点并做容错
        amazon_items = data.get("Amazon", [])
        if amazon_items:
            amazon_login = amazon_items[0].get("Login", "无Login数据")
            amazon_password = amazon_items[0].get("Password", "无Password数据")
            output = f"Amazon:\n    Login: {amazon_login}\n    Password: {amazon_password}"
        else:
            output = "Amazon节点不存在或为空"
        
        print(output)
        with open("json_output.txt", "w") as file:
            file.write(output)

json_read()

运行结果

执行后,控制台和json_output.txt会输出:

Amazon:
    Login: john
    Password: amazonisgreat777

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:33:14