1、json是一个字符串,只不过长得像字典
使用json需要引入json模块
import json
定义一个json串:
user_info='''{''nhy":"123456","lxy":"456789"}'''
外面三引号,大括号,双引号,冒号,逗号。双引号不可用单引号代替。
校验json格式是否正确的网站:www.bejson.com
2、把json串转成字典
user_dic=json.loads(user_info)
loads是和字符串有关的,可以读取字符串
3、把字典转成json串
stu_str=json.dumps(stu_info)
1 stu_info={'laowang':{'cars':['BMW','Ben-z]}}
2 stu_str=json.dumps(stu_info)
3 print(stu_str)
1 fw=open('stu.txt','w')
2 fw.write(stu_str)
3 fw.close()
dumps需要自己手动read一次,而dump不需要,它会自动帮你读
4、dump和load
json.dump() #操作一个文件,不需要你自己write,它直接帮你写进去
json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。
1 stu_info={'laowang':{'cars':['BMW','Ben-z']}} #定义一个字典
2 f=open('stu.json') #打开一个json文件
3 res=json.dump(stu_info,f,indent=4) #不需要再写一次文件,json帮你写入,indent=4表示帮你写4个缩进
4 # 存储数据,可用于存储的文件对象
json.load() #操作一个文件,不需要你自己read,它直接帮你读,只能读文件
1 f=open('stu.json') #打开一个json文件
2 res=json.load(f) #直接从文件里拿,不需要再赌一次文件,json帮你读
3 print(res)
5、练习
注册验证:
1 import json #引入json模块
2 f=open('users.txt','a+') #打开users文件
3 f.seek(0)
4 all_user=json.load(f) #把文件读取出来的内容放到字典中
5
6 #注册
7 for i in range(3):
8 u = input('user:').strip()
9 p = input('p:').strip()
10 cp = input('cp:').strip()
11 if not u or not p:
12 print('账号、密码不能为空')
13 elif u in all_user:
14 print('该用户已经被注册!')
15 elif u not in all_user and cp==p:
16 all_user[u]=p
17 break
18 f.seek(0)
19 f.truncate() #清空文档内容
20 json.dump(all_user,f) #将all_user内容写进文件中
21 f.close()