我在学习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。