python中json文件读写
下面介绍json文件的相关操作
我了解到Json,全名 JavaScript Object Notation,是一种轻量级的数据交换格式。Json最广泛的应用是作为AJAX中web服务器和客户端的通讯的数据格式。现在也常用于http请求中,所以对json的各种学习,是自然而然的事情。
一. dumps 和 dump:
dumps和dump 序列化方法
dumps只完成了序列化为str,
dump必须传文件描述符,将序列化的str保存到文件中
下面使用实际的例子依次介绍:
import json
key={ "people": [
{ "Name": "Brett", "名字":"McLaughlin", '1': 1 },
{ "Name": "Jason", "名字":"Hunter", '2': 1},
{ "Name": "Elliotte", "名字":"Harold", '3': 1 }
]}
print(json.dumps(key,sort_keys=True,indent =4,ensure_ascii=False))
输出效果如下:
{
"people": [
{
"1": 1,
"Name": "Brett",
"名字": "McLaughlin"
},
{
"2": 1,
"Name": "Jason",
"名字": "Hunter"
},
{
"3": 1,
"Name": "Elliotte",
"名字": "Harold"
}
]
}
非常简便的将所需要的数据流畅的保存下来了,下面我们介绍相关的参数:
(1)indent=4:缩进,python中默认缩进是4个,前端和css默认是2个
(2)sort_keys=True/False:以key为标准,按key的a-z字母排序
(3)separators=(‘,’,‘:’):减少空格,增加传输速度,参数是要保留的标点符号,json只保留 逗号和冒号就行。
下面我们将其保存在json的文件中:
with open("E:\\测试.json", "w+",encoding='utf-8_sig')as f:
json.dump(key,f,sort_keys=True,indent =4,ensure_ascii=False)
显示结果为:
如上即为保存完成的数据
二. loads 和 load
loads和load 反序列化方法
loads 只完成了反序列化,
load 只接收文件描述符,完成了读取文件和反序列化
同样用上述例子介绍:
key_1=json.dumps(key,sort_keys=True,indent =4,ensure_ascii=False)
print(json.loads(key_1))
输出为:
{'people': [{'1': 1, 'Name': 'Brett', '名字': 'McLaughlin'}, {'2': 1, 'Name': 'Jason', '名字': 'Hunter'}, {'3': 1, 'Name': 'Elliotte', '名字': 'Harold'}]}
即将其反输出
下面读取json文件也是一样的:
with open("E:\\测试.json", "r+",encoding='utf-8_sig')as f:
data=json.load(f)
print(data)
即可读取成功
下面将所有代码写入
import json
key={ "people": [
{ "Name": "Brett", "名字":"McLaughlin", '1': 1 },
{ "Name": "Jason", "名字":"Hunter", '2': 1},
{ "Name": "Elliotte", "名字":"Harold", '3': 1 }
]}
print(json.dumps(key,sort_keys=True,indent =4,ensure_ascii=False))
with open("E:\\测试.json", "w+",encoding='utf-8_sig')as f:
json.dump(key,f,sort_keys=True,indent =4,ensure_ascii=False)
key_1=json.dumps(key,sort_keys=True,indent =4,ensure_ascii=False)
print(json.loads(key_1))
with open("E:\\测试.json", "r+",encoding='utf-8_sig')as f:
data=json.load(f)
print(data)
输出为:
上述为json的相关操作!
希望对大家有帮助!