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的相关操作!
希望对大家有帮助!

猜你喜欢

转载自blog.csdn.net/qq_40594554/article/details/83653393