使用load,dump方法生成Json格式文件

本文介绍了如何使用Python实现用户信息下载与保存,包括检查文件是否存在、读取json并问候老用户,同时处理新用户注册。
import json # 导入json模块
# 明确思路 需要两个函数,一个函数询问 一个函数加载
def downloaded_users(user_name):
	try:
		filename = f'{user_name}.json' # 定义以用户名为名字的文件名
		with open (filename,'r') as f:
			user_mesg = json.load(f) # 提取文档中的内容
	except FileNotFoundError:
		return None # 如果找不到该json文件则返回空
	else:
		return user_mesg# 如果找到了则返回文件中保存的用户名

def greet_user():
	user_agent = input('what is your name?:\n') # 询问用户的名字
	user_active = downloaded_users(user_agent) # 通过调用加载函数得到是否为已存在客户
	if user_active:
		print(f'welcome back dear {user_agent}') # 打印回来的信息
	else:
		filename = f'{user_agent}.json' # 定义以用户名为名字的文件名,注意此处与第一个函数中的区别
		with open(filename,'w') as f: # 打开文件进行写操作,注意,写操作时如果已经存在则会覆盖,此处不矛盾,因为本来就没有这文件
			json.dump(user_agent,f) #把用户输入的名字放到json文件中
			print(f'we will see you again {user_agent}')
greet_user()

 

都是一些很基础的东西,希望各位见谅,此贴权当一个学习印迹 

在Python中,可采用以下几种方法JSON文件进行格式化处理: ### 使用命令行方式 借助Python自带的`json`库,在命令行里实现对JSON文件的格式化。以下命令会读取`input.json`文件,对其进行格式化,然后将结果输出到`output_formatted.json`文件中: ```bash python -m json.tool input.json > output_formatted.json ``` 这种方式适合在命令行环境下快速处理JSON文件,无需编写额外的Python代码 [^2]。 ### 使用`json.loads()`和`json.dump()`方法 若有一个JSON字符串格式的数据,可运用`json.loads()`方法把它加载为Python对象,再利用`json.dump()`方法将该对象格式化保存到本地文件。示例代码如下: ```python import json # json_resp为json字符串格式的数据(全部都在一行) json_resp = '{"key": "value", "list": [1, 2, 3]}' json_load = json.loads(json_resp) save_jsonfile = r"test.json" with open(save_jsonfile, mode='w', encoding='utf-8') as json_file: json.dump(json_load, json_file, ensure_ascii=False, indent=2) print('jsonfile生成完成--') ``` 在上述代码中,`json.loads()`把JSON字符串转换为Python对象,`json.dump()`将Python对象以格式化的形式写入文件,`indent=2`表示使用两个空格进行缩进 [^3]。 ### 使用`json.dumps()`方法 若要把Python数据类型转换为格式化的JSON字符串,可使用`dumps()`方法。示例如下: ```python import json test_dict = {'one': 1, 'two': {2.1: ['a', 'b']}} json_str = json.dumps(test_dict, indent=2) print(json_str) ``` 此代码把Python字典`test_dict`转换为格式化的JSON字符串,`indent=2`同样用于设置缩进 [^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChenDaX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值