python json dump和load_在Python中使用Json.dump和Json.load

我在一个存储用户名的程序中使用两个json函数加载和转储,并在调用时返回它们。以下是我的代码:

#Saving data for later use using json

import json

#Load the username, if it has been stored previously.

# Otherwise, prompt for the username and store it.

def get_stored_username():

"""Get stored username if available."""

filename = 'username.json'

try:

with open(filename) as f_obj:

username = json.load(f_obj)

except FileNotFoundError:

return None

else:

return username

def get_new_username():

"""Prompt for a new username"""

username = input("What is your name? ")

filename = 'username.json'

with open(filename, 'w') as f_obj:

json.dump(username, f_obj)

return username

def greet_user():

"""Greet the user by name"""

username = get_stored_username()

if username:

correct = input("Are you " + username + "? (y/n) ")

if correct == 'y':

print("Welcome back, " + username + "!")

else:

username = get_new_username()

print("We'll remember you when you come back, " + username + "!")

else:

username = get_new_username()

print("We'll remember you when you come back, " + username + "!")

greet_user()

我运行了两次get_new_username()函数,并且运行正常。但是,一旦我运行greet_user()函数,我就会收到以下错误。有没有人遇到过这个,你做了什么来补救它?

Traceback (most recent call last):

File "remember_me.py", line 39, in

greet_user()

File "remember_me.py", line 27, in greet_user

username = get_stored_username()

File "remember_me.py", line 11, in get_stored_username

username = json.load(f_obj)

File "/usr/lib/python3.5/json/__init__.py", line 268, in load

parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)

File "/usr/lib/python3.5/json/__init__.py", line 319, in loads

return _default_decoder.decode(s)

File "/usr/lib/python3.5/json/decoder.py", line 342, in decode

raise JSONDecodeError("Extra data", s, end)

json.decoder.JSONDecodeError: Extra data: line 1 column 15 (char 14)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值