json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

我在学习Python中遇到了这个报错:raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)我反复检查代码后发现没有任何问题
以下是代码:

import json
new_file = "C:/Users/zhangjun2016/Desktop/username.json"


def get_stored_username():
    try:
        with open(new_file,'r') as f:
            username = json.load(f)
    except FileNotFoundError:
        return None
    else:
        return username


def greet_user():
    username = get_stored_username()
    if username:
        print(f"welcome back {username}")
    else:
        username = get_new_username()
        print(f"we'll remember you come back,{username}")


def get_new_username():
    username = input("what's your name? ")
    with open(new_file, 'w',encoding='utf-8') as f:
        json.dump(username, f)
    return username


greet_user()

这个是报错:

Traceback (most recent call last):
  File "D:\pythonProject\d.py", line 31, in 
    greet_user()
  File "D:\pythonProject\d.py", line 16, in greet_user
    username = get_stored_username()
  File "D:\pythonProject\d.py", line 8, in get_stored_username
    username = json.load(f)
  File "C:\Users\zhangjun2016\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 293, in load
    return loads(fp.read(),
  File "C:\Users\zhangjun2016\AppData\Local\Programs\Python\Python39\lib\json\__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "C:\Users\zhangjun2016\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\zhangjun2016\AppData\Local\Programs\Python\Python39\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

刚开始学习Python,不知道如何解决,礼貌求解

回答不易,求求您点赞采纳哦

看起来您JSONDecodeError在尝试在 Python 程序中读取 JSON 文件时遇到了问题。当 JSON 解码器无法将输入数据解析为有效的 JSON 对象时,会引发此错误。

在您的代码中,错误发生在username = json.load(f)试图将文件内容解析new_file为 JSON 对象的行中。出现此错误的原因可能有以下几个:

  • 该文件new_file不包含有效的 JSON 数据。确保文件格式正确并包含有效的 JSON 对象。

  • 该文件new_file不存在。确保文件存在并且文件路径正确。

  • 文件的权限有问题,new_file程序没有读取文件的权限。确保该程序具有读取该文件的必要权限。

  • 文件的编码有问题new_file。确保文件以受支持的编码保存,例如 UTF-8。