python3 json操作

#json操作
import json

data = {
	'username':'admin',
	'password':'admin',
	'age':20,
	'sex':'男',
	'email':'434754018@qq.com'
}
#字典转字符串
with open('jsonToStr.txt', 'w', encoding='utf-8') as f:
	data = json.dumps(data)
	f.write(data)

#修改文本内容
with open('jsonToStr.txt', 'r+') as f:
	data2 = json.loads(f.read())  #字符串转字典
	data2['sex']='male'
	f.seek(0) #把文件指针移到到头部
	print(f.tell())
	f.write(json.dumps(data2))

#读取文本内容
with open('jsonToStr.txt', mode='r', encoding='utf-8') as f:
	data= f.read()
	#打印数据类型
	print(type(data))
	print(data)

#模拟登陆
userData ={
	'admin':{
	'pwd':'admin',
	'lock':0
	},
	'merry':{
	'pwd':'123',
	'lock':1
	},
	'adc':{
	'pwd':'123',
	'lock':0
	}
}

#将数据写入json文件 字符串
with open('account.json', mode='w', encoding='utf-8') as f:
	data3 = json.dumps(userData)
	f.write(data3)
	print(type(data3))

#读取文件
with open('account.json', mode='r+', encoding='utf-8') as f:
	#读取文件内容
	data4 = json.loads(f.read())

	count=0
	while 1:
		username = input('请输入你的用户名:')
		if username == 'q':
			exit()
		if username not in data4:
			print('你输入的用户不存在!')
			continue
		if username in data4:
			if data4[username]['lock'] == 1:
				print('你的账户被锁定,无法登陆!')
				exit()
			while 1:
				count += 1
				if count > 2:
					data4[username]['lock'] =1
					print(data4)
					f.seek(0)
					f.write(json.dumps(data4))
					print('你的账户被锁定!')
					exit()

				print('这是你 %d 次 尝试!' % count)
				password = input('请输入你的密码:')
				if data4[username]['pwd'] == password:
					print('欢迎 %s 登陆!' % username)
					exit()
				elif password == 'q':
					exit()
				else:
					print('密码错误!')
					continue
					

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Python操作JSON的示例代码: 1. 将Python对象编码为JSON字符串 ```python import json # 将字典编码为JSON字符串 dict1 = {'A': 'a', 'B': 'b', 'C': 'c'} en_json = json.dumps(dict1) print(type(en_json), en_json) # 将列表编码为JSON字符串 lst = ['aa', 'bb', 'cc'] lst_json = json.dumps(lst) print(type(lst_json), lst_json) # 将字符串编码为JSON字符串 s = 'I love you!' s_json = json.dumps(s) print(type(s_json), s_json) # 注意:集合类型的对象是不可以JSON序列化的 _set = {'aaa', 'bbb'} # set_json = json.dumps(_set) # 报错:TypeError: Object of type set is not JSON serializable ``` 2. 将JSON字符串解码为Python对象 ```python import json # 将JSON字符串解码为字典 en_json = '{"A": "a", "B": "b", "C": "c"}' de_json = json.loads(en_json) print(type(de_json), de_json) # 将JSON字符串解码为列表 lst_json = '["aa", "bb", "cc"]' de_json = json.loads(lst_json) print(type(de_json), de_json) # 将JSON字符串解码为字符串 s_json = '"I love you!"' de_json = json.loads(s_json) print(type(de_json), de_json) # 注意:集合类型的对象是不可以JSON序列化的 # set_json = '{"aaa", "bbb"}' # de_json = json.loads(set_json) # 报错:Expecting property name enclosed in double quotes: line 1 column 2 (char 1) ``` 3. 使用eval()解析JSON字符串(不推荐使用) ```python import json # 使用eval()解析JSON字符串 en_json = '{"X": "x", "Y": "y", "Z": "z"}' de_json = eval(en_json) print(type(de_json), de_json) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值