python的json模块
JSON (JavaScript Object Notation)是一种使用广泛的轻量数据格式. Python标准库中的json模块提供了JSON数据的处理功能。
python中字典格式和json类似,Python中的json库提供的主要功能, 也是两者之间的转换
1、将json串转为字典,使用loads方法
import json json_str=''' {"name":"小黑","age":18,"sex":"男","age":18} ''' res = json.loads(json_str) #把json串转为字典 print(type(res)) print(res)
2、将字典转为json串,使用dumps
import json dic = { "xiaohei":{ "age":18, "password":12345, "sex":"男", "addr":"北京" }, "小白":{ "age":18, "password":12345, "sex":"男", "addr":"北京" }, "小王":{ "age":18, "password":12345, "sex":"男", "addr":"北京" }, } res = json.dumps(dic)#将字典转为json print(res)
#注意,这样讲所有的汉字转为ascii码,可使用下面的方法不转为ascii码,且好看
res1 = json.dumps(dic,ensure_ascii=False,indent=4)#其中ensure_ascii=False是不将中文转为ascii码,indent是缩进数
3、将一个包含JSON格式数据的可读文件转为字典,使用load,load可以自己读文件
with open('text.json','r',encoding='utf-8') as fr: aa = json.loads(fr.read()) fr.seek(0) bb = json.load(fr)# json.load(fr)和json.loads(fr.read()) 返回结果一样,load可以自己去读文件 print(aa) print(bb) #输出 {'name': '小黑', 'age': 18, 'sex': '男'} {'name': '小黑', 'age': 18, 'sex': '男'}
4、将文件中的字典格式转换成json,使用dump
一个动作是将”obj“转换为JSON格式的字符串,还有一个动作是将字符串写入到文件中
import json dic = { "xiaohei":{ "age":18, "password":12345, "sex":"男", "addr":"北京" }, "小白":{ "age":18, "password":12345, "sex":"男", "addr":"北京" }, "小王":{ "age":18, "password":12345, "sex":"男", "addr":"北京" }, } fw = open('newuser.json','w',encoding='utf-8')#打开一个新的文件 aa = json.dump(dic,fw,indent=4,ensure_ascii=False)#将字典写到该文件中 print(aa)