jason --轻量级的数据交换格式 ---实例
字典 --json
将字典转换成字符串类型
import json
#定义一个字典
d1 ={"zhangsan":{"age:":18,"hobby":"bakball"},
"lisa":{"age":18,"hobby":"music"}}
d1_str = json.dumps(d1) #转换成字符串类型
print(d1_str)
print(type(d1_str))
![](https://img-blog.csdnimg.cn/img_convert/fd5f51a177d9617b16b5c1eb2eb84f95.jpeg)
将字典转换成字符串
# str --> dict
d2 = json.loads(d1_str)
print(d2)
print(type(d2))
![](https://img-blog.csdnimg.cn/img_convert/69e0006c2639c179d99fea8da6bd5069.jpeg)
open 打开文件
fp = open("stuinfo.txt", "w") # "w"以覆盖形式
fp.write(d1_str) # 写入数据 ---》d1_str
fp.close() # 写完之后关闭
读取
fp = open("stuinfo.txt")
d2_str = fp.read()
print(d2_str, type(d2_str))
fp.close()
d2 = json.loads(d2_str) #用它 --》再转换成字典
print(f"d2 的类型是:", type(d2))
![](https://img-blog.csdnimg.cn/img_convert/baf1ff871d2f2760d145ea97b91e2d32.jpeg)
实例:
加入json后,按q退出后下一次进入仍然可以查询到数据
信息管理 --按1增加信息:姓名 、年龄、爱好
按2 查询信息----》用户输入姓名,输出姓名年龄爱好
import json
stuinfo = {}
print("1、添加学生信息:")
print("2、查询学生信息")
while 1:
choice = input("请输入你的选择:")
if choice == "q":
break
elif choice == "1":
name, age, hobby = input("请输入你的名字、年龄、爱好(空白分割)").split()
stuinfo[name] = {"age":age, "hobby": hobby}
stuinfo_str = json.dumps(stuinfo) #转换成字符串 并用stuinfo_str变量表示
fp = open("stuinfo.txt", "w") # 打开
fp.write(stuinfo_str)
fp.close()
elif choice == "2":
fp = open("stuinfo.txt")
read_str = fp.read()
fp.close()
stuinfo = json.loads(read_str) #转换成字典
name = input("请输入你的名字:")
print(f"{name}的年龄是{stuinfo[name]['age']},爱好是{stuinfo[name]['hobby']}")
else:
print("输入有误!请重新输入")