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
相关产品推荐
相关产品推荐

