为什么要向json中写入数据?
json是什么:json 全称“JavaScript Object Notation”,译为“JavaScript 对象简谱”或“JavaScript 对象表示法”,是一种轻量级的、基于文本的、开放的数据交换格式。且大多数编程语言都支持json
json的优势:json是一种开放的、轻量级的数据交换格式,采用独立于编程语言的文本格式来存储和表示数据,易于程序员阅读与编写,同时也易于计算机解析和生成,通常用于在 Web 客户端(浏览器)与 Web 服务器端之间传递数据。
应用情景:用户注册系统,用于存储用户信息
涉及json操作:写入、读取、修改
使用的函数:
json.dumps(a) | 将python数据转换为json字符串数据 |
json.dump(b,f1) | 将数据b写入json文件中 |
json.loads(c) | 将json数据转化为python数据读出,c必须是字符串 |
json.load(f1) | 将json文件中所有的数据都读出 |
示例:
import json
a = {}
with open("users_all.json","r+",encoding="utf-8") as f1:
json_str = json.dumps(a) # 将python数据转化为json字符串类型
new_dict = json.loads(json_str) # 将json数据转化为python数据类型读出
new_dict['a'] = 1 # 修改数据
new_dict['b'] = 2
json.dump(new_dict,f1) # 将数据写入json文件中
with open("users_all.json", "r", encoding="utf-8") as f1:
load_dict = json.load(f1) # 将json文件这中的内容全部度读出,并转化为python数据类型
for k in load_dict.keys():
print(k)
注意:如果要将二次打开文件嵌套太第一次中 ,文件的重命名不能相同否则出现如下报错
Traceback (most recent call last):
File "F:\python_projeck\课程作业\基础阶段课程作业\素材.py", line 10, in <module>
load_dict = json.load(f1) # 将json文件这中的内容全部度读出,并转化为python数据类型
File "D:\lib\json\__init__.py", line 293, in load
return loads(fp.read(),
File "D:\lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "D:\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "D:\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)
执行后的json文件: