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

使用json.load加载文件到字典时遇参数缺失错误的排查与修复

你的代码问题分析与修复方法

首先看你遇到的TypeError,这个错误很直接:你调用load_user_db_file()的时候没有传入它要求的users参数——函数定义里明确写了需要一个users: dict类型的参数,但你调用时是空的,所以Python报错说缺少必填参数。

不过就算你补上参数,代码还有第二个隐藏问题:函数内部的users = json.load(file)并不会修改你外部传入的字典。因为在Python中,参数传递是对象引用传递,当你在函数里给users重新赋值时,只是让这个局部变量指向了json.load返回的新字典,而外部的那个users字典完全不受影响。

下面给你两种可行的修复方案:

方案一:让函数直接返回加载后的字典(推荐)

这种方式更简洁直观,不需要提前创建空字典,函数直接返回加载结果:

import json
def load_user_db_file():
    with open("user_db_file.txt", 'r') as file:
        return json.load(file)

# 调用时直接接收返回值
users = load_user_db_file()

方案二:更新传入的字典(如果需要保留原字典内容)

如果你必须要修改外部传入的字典(比如原字典已有一些数据,需要合并),可以用update()方法来修改原对象的内容,而不是重新赋值:

import json
def load_user_db_file(users: dict):
    with open("user_db_file.txt", 'r') as file:
        loaded_users = json.load(file)
        users.update(loaded_users)  # 将加载的数据合并到传入的字典中

# 调用方式:先创建字典,再传入函数
users = {}
load_user_db_file(users)
# 此时users已经包含了文件中的数据

总结一下:

  • 先修正调用时的参数问题,要么给函数传users参数,要么改成函数返回结果
  • 注意Python中函数内对参数的重新赋值不会影响外部变量,需要用修改对象内容的方式(比如update)或者返回新对象来传递数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:52:24