下面将为大家介绍如何使用python语言来编码和解码json对象;
json串就是一个字符串,json串必须用双引号,不能使用单引号
使用json函数需要导入json库,import json
1、json.dumps: 将python对象编码成json字符串
2、json.loads :将已编码的json字符串解码为python对象
json.dump()和json.load()主要用来读写json文件函数
1、json.dump() : 将json信息写入文件
2、json.load() :读取json文件转为字典
下面是举例说明:
已知如下json串:
d={
"error_code": 0,
"stu_info": [
{
"id": 314,
"name": "矿泉水",
"sex": "男",
"age": 18,
"addr": "北京市昌平区",
"grade": "摩羯座",
"phone": "",
"gold": 100
},
{
"id": 315,
"name": "矿泉水",
"sex": "女",
"age": 27,
"addr": "上海",
"grade": "摩羯座",
"phone": "",
"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',result,type(result))
# 直接读出文件内容,转为字典;此方法相当于上面方法1的代码含义
帮助理解可参考博客: