3.json文件常识及基本操作

3.json文件常识及基本操作

JSON,全称是JavaScript Object Notation,中文译为JavaScript对象简谱,它是一种轻量级的数据交换格式。

JSON基于ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。这种格式简洁和清晰的层次结构使得JSON成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON是一种纯字符串形式的数据,它本身不提供任何方法(函数),非常适合在网络中进行传输。

在JavaScript、PHP、Java、Python、C++等编程语言中,都内置了处理JSON数据的方法。通常情况下,JSON用于在Web客户端(浏览器)与Web服务器端之间传递数据。

python对json进行基本的增删改查操作

在Python中,可以使用内置的json模块对JSON文件进行增删改查操作。下面是一些基本的操作示例:

首先,假设我们有一个名为data.json的JSON文件,其内容如下:

{  
    "students": [  
        {"id": 1, "name": "Alice", "age": 20},  
        {"id": 2, "name": "Bob", "age": 21},  
        {"id": 3, "name": "Charlie", "age": 22}  
    ]  
}

接下来,我们将演示如何对该文件进行增删改查操作。

读取JSON文件

可以使用json.load()方法读取JSON文件的内容并将其解析为Python对象。例如:

import json  
  
with open('data.json', 'r') as f:  
    data = json.load(f)  
    print(data)

输出:

{‘students’: [{‘id’: 1, ‘name’: ‘Alice’, ‘age’: 20}, {‘id’: 2, ‘name’: ‘Bob’, ‘age’: 21}, {‘id’: 3, ‘name’: ‘Charlie’, ‘age’: 22}]}

查询JSON文件中的数据

可以通过访问Python对象的属性或索引来查询JSON文件中的数据。例如,要查询第一个学生的姓名,可以执行以下代码:

print(data['students'][0]['name'])

输出:
Alice

修改JSON文件中的数据

可以通过修改Python对象的属性或索引来修改JSON文件中的数据。例如,要将第一个学生的年龄修改为25,可以执行以下代码:

data['students'][0]['age'] = 25

向JSON文件中添加数据

可以通过向Python对象中添加新的属性或元素来向JSON文件中添加数据。例如,要添加一个名为David的新学生,可以执行以下代码:

new_student = {'id': 4, 'name': 'David', 'age': 23}  
data['students'].append(new_student)

将修改后的数据写入JSON文件

可以使用json.dump()方法将修改后的Python对象写入JSON文件。例如:

with open('data.json', 'w') as f:  
    json.dump(data, f)

注意,这里使用了’w’模式打开文件,这将覆盖原始文件的内容。如果要在原始文件中追加新的数据,可以使用’a’模式打开文件。

实例

import json
import os

class JsonHelper:
    '''
    更新,添加
    '''
    def update(self,key,data,data_path):
        # 如果json文件不存在,则创建
        if not os.path.exists(data_path):
            with open(data_path, 'w',encoding='utf-8') as f:
                # 创建空json文件
                f.write(json.dumps({}))
        # 更新数据
        with open(data_path, encoding='utf-8-sig', errors='ignore') as file:
            # 读取json文件
            content = json.load(file)
            if key in content:
                # 更新键的内容
                content[key].update(data)
            else:
                # 添加键和其内容
                content[key] = data
            # 保存数据到本地json文件中
            with open(data_path, 'w',encoding='utf-8') as f:
                json.dump(content, f, indent=2,ensure_ascii=False)

    '''
    读取
    '''
    def read(self,data_path):
        with open(data_path, encoding='utf-8-sig', errors='ignore') as file:
            content = json.load(file)
        return content

    '''
    删除
    '''
    def delete(self,key,data_path):
        # 读取json文件
        with open(data_path, encoding='utf-8-sig', errors='ignore') as file:
            content = json.load(file)
            # 删除对应的键和内容
            del content[key]
        # 保存数据到本地json
        with open(data_path, 'w',encoding='utf-8') as f:
            json.dump(content, f, indent=2,ensure_ascii=False)
        return content


jsonHelper = JsonHelper()

if __name__ == '__main__':
    jsonHelper = JsonHelper()
    # jsonHelper.write({"tetset":1231})
    print("写入json")
    jsonHelper.data_path = r"../assets/data.json"
    print(jsonHelper.read())
    test= jsonHelper.read()
    print(test["data"])



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值