下面将为大家介绍如何使用python语言来编码和解码json对象;
json串就是一个字符串,json串必须用双引号,不能使用单引号
使用json函数需要导入json库,import json
1、json.dumps: 将python对象编码成json字符串
2、json.loads :将已编码的json字符串解码为python对象
下面是举例说明:
已知如下json串:
d={ "error_code": 0, "stu_info": [ { "id": 314, "name": "矿泉水", "sex": "男", "age": 18, "addr": "北京市昌平区", "grade": "摩羯座", "phone": "18317155663", "gold": 100 }, { "id": 315, "name": "矿泉水", "sex": "女", "age": 27, "addr": "上海", "grade": "摩羯座", "phone": "18317155664", "gold": 100 } ] }
一、把字典转换为字符串:
1、方法1:
with open('abc.json','w',encoding='utf-8') as fw: s = json.dumps(d,ensure_ascii=False,indent = 4) fw.write(s) #1、中文乱码问题 ensure_ascii=False #2、美观的问题 indent=n 的意思是每一个key前面加n个空格的意思 #3、abc.json可将json的颜色打印出来
2、方法2:
with open('abc.json','w',encoding='utf-8') as fw: json.dump(d,fw,indent=4,ensure_ascii=False) #不需要手动的write一次,直接可写入文件(第一个传入字典,第二个传入文件) #此方法从上面两行代码的含义,更简单
二、将文件的字符串转换为字典:
1、方法1:
with open('abc.txt',encoding='utf-8') as fr: result = fr.read() print('result,刚从文件里面读出来的:',type(result)) dic = json.loads(result) print('dic,转换之后的',dic,type(dic))
2、方法2:
with open('abc.txt',encoding='utf-8') as fr: result= json.load(fr) print('result',type(result)) # 直接读出文件内容,转为字典;此方法相当于相面的代码含义