python-用json 转换,读写 字典

jason --轻量级的数据交换格式 ---实例

字典 --json

  1. 将字典转换成字符串类型

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))
  1. 将字典转换成字符串

# str --> dict
d2 = json.loads(d1_str)
print(d2)
print(type(d2))
  1. open 打开文件

fp = open("stuinfo.txt", "w")       # "w"以覆盖形式
fp.write(d1_str)                    # 写入数据 ---》d1_str
fp.close()                          # 写完之后关闭
  1. 读取

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))

实例:

加入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("输入有误!请重新输入")

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值