处理json
2024-09-04 17:13:27
一、json
json是一个字符串,只不过长得比较像字典。使用json函数需要导入json库,即import json
json的格式只有双引号,不可用单引号
1、json.loads()和json.load()的区别
(1)json.loads() 将json串(字符串)转成字典
import json user_info = '''{"nhy":"123456","aa":"123456"}'''
print(user_info)
# {"nhy":"123456","aa":"123456"}
user_dic = json.loads(user_info)# 把json串(字符串)转成字典
print(user_dic)
# {'nhy': '123456', 'aa': '123456'}
print('user_dic',type(user_dic))
# user_dic <class 'dict'>
print('user_info',type(user_info))
# user_info <class 'str'>
(2) json.load(f) 这个是直接从文件里拿,不需要再读一次文件了,json直接读
注释:f是指文件
import json f = open('stu.json')
# stu.json文件内的内容
# {
# "laowang": {
# "cars": [
# "BMW",
# "Ben-z"
# ]
# }
# }
# res1 = json.loads(f.read())
# print(res1) #{'laowang': {'cars': ['BMW', 'Ben-z']}}
res = json.load(f)
print(res)
#{'laowang': {'cars': ['BMW', 'Ben-z']}}
2、json.dumps()和json.dump() 的区别
(1)json.dumps() 把字典转成json
import json stu_info = {'laowang':{'cars':['BMW','Ben-z']}}
# stu_info是字典
stu_str = json.dumps(stu_info)# 把字典转成json(字符串)
print('json...',type(stu_str))
# json... <class 'str'>
print(stu_str)
# {"laowang": {"cars": ["BMW", "Ben-z"]}}
(2)json.dump() 不需要自己再操作一遍write,会主动写入文件
import json stu_info = {'laowang':{'cars':['BMW','Ben-z']}}
# fw = open('stu.txt','w',encoding='utf-8')
# fw.write(stu_str) # stu_str是上述介绍json.dumps()中得到的json
# fw.close() fw = open('stu.json','w',encoding='utf-8')
json.dump(stu_info,fw,indent=4)# 不需要自己再write,会主动写入文件,indent指的是写入文件后,缩进几个空格
二、json写注册登录
import json
f = open('users.txt','a+',encoding='utf-8') #文件句柄,文件对象
f.seek(0)
all_users = json.load(f)
for i in range(3):
u = input('user:').strip()
p = input('p:').strip()
cp = input('cp:').strip()
if not u or not p:
print('账号、密码不能为空')
elif u in all_users:
print('该用户已经被注册!')
elif u not in all_users and cp==p:
all_users[u]=p
break
f.seek(0)
f.truncate()
json.dump(all_users,f,indent=4)
f.close() # username = input('username:')
# pwd = input('paswd')
#all_user = ['nhy','abc']
#passwd = ['123456','12345']
#
# if username in all_user and pwd in passwd:
# print('登录成功')
最新文章
- 【WPF】最近在学习wpf 的绑定,,
- Django Channels 学习笔记
- zsh下 home end 键失效的解决办法
- 关于cmd下使用taskkill无法终止进程名包含空格的进程的解决方案
- reactjs 注意点
- 监控Mysql主从环境下Slave延迟状态的操作记录
- c# 6.0新特性(二)
- CodeBlocks的汉化、主题美化及其调试功能的实现
- [Linux]gdb调试
- 部分手机不能连PC adb
- 第一个Apple Watch小例子
- winPcap_2_编译环境*注意*
- tornado\ioloop.py单例
- activiti工作流框架简介
- spring MVC 管理HttpClient---实现在java中直接向Controller发送请求
- vi命令设置行号
- http中post和get方法区别
- Go语言的map如何判断key是否存在
- Linux设备树(一 概述)
- C# 流水号生成器开发
热门文章
- 谈谈contentWindow 和contentDocument以及 iframe
- VS编译常见错误枚举01
- 一些c++
- PLSQL链接oracle报错--ORA-12154: TNS: 无法解析指定的连接标识符
- ubuntu apt-get用法
- Navigator - BOM对象
- Log4Net 在ASP.NET WebForm 和 MVC的全局配置
- 关于使用sessionStorage报SecurityError错误的问题
- ubuntu16.04 安装openpose
- Tensorflow学习(练习)—使用inception做图像识别