Python json文件操作

在Python中处理JSON文件可以通过内置的json模块来实现。以下是一些常见的操作,包括读取、保存、修改、删除、查找和替换JSON中的值或键。我们将以一个示例JSON文件为基础进行演示。

示例JSON文件

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

{
    "name": "Alice",
    "age": 30,
    "city": "New York",
    "email": "alice@example.com",
    "interests": ["reading", "traveling", "music"]
}

1. 读取JSON文件

import json

def read_json(file_path):
    with open(file_path, 'r') as file:
        data = json.load(file)
    return data

data = read_json('data.json')
print(data)

2. 保存JSON文件

def save_json(file_path, data):
    with open(file_path, 'w') as file:
        json.dump(data, file, indent=4)

# 修改后保存
data['age'] = 31
save_json('data.json', data)

3. 修改某个或某些值

def modify_value(data, key, new_value):
    if key in data:
        data[key] = new_value
    else:
        print(f"Key '{key}' not found.")
        
modify_value(data, 'city', 'Los Angeles')
print(data)  # 查看修改后的数据

4. 删除某些值或键

def delete_key(data, key):
    if key in data:
        del data[key]
    else:
        print(f"Key '{key}' not found.")

delete_key(data, 'email')
print(data)  # 查看删除后的数据

5. 查找某个值

def find_value(data, key):
    return data.get(key, "Key not found.")

city = find_value(data, 'city')
print(f"City: {city}")

6. 替换某个值

def replace_value(data, key, old_value, new_value):
    if key in data and data[key] == old_value:
        data[key] = new_value
    else:
        print(f"Value '{old_value}' not found for key '{key}'.")

replace_value(data, 'interests', 'reading', 'writing')
print(data)  # 查看替换后的数据

综合示例

以下是一个完整的示例,综合了上述所有操作:

import json  

def read_json(file_path):  
    """读取 JSON 文件并返回数据"""  
    with open(file_path, 'r') as file:  
        return json.load(file)  

def save_json(file_path, data):  
    """保存 JSON 数据到文件"""  
    # 使用 indent 参数确保缩进保持一致  
    with open(file_path, 'w') as file:  
        json.dump(data, file, indent=4)  

def pretty_print(data):  
    """美观打印 JSON 数据"""  
    print(json.dumps(data, indent=4))  

def modify_value(data, key, new_value):  
    """修改某个键的值"""  
    if key in data:  
        data[key] = new_value  
    else:  
        print(f"键 '{key}' 未找到。")  

def delete_key(data, key):  
    """删除某个键"""  
    if key in data:  
        del data[key]  
    else:  
        print(f"键 '{key}' 未找到。")  

def find_value(data, key):  
    """查找某个键的值"""  
    return data.get(key, "未找到该键。")  

def replace_value(data, key, old_value, new_value):  
    """替换关键字的某个值"""  
    if key in data and data[key] == old_value:  
        data[key] = new_value  
    elif key not in data:  
        print(f"键 '{key}' 未找到。")  
    else:  
        print(f"键 '{key}' 的值不是 '{old_value}'。")  

# 主程序部分  
file_path = 'data.json'  

# 读取 JSON 数据  
data = read_json(file_path)  

# 更改年龄  
print("修改前数据:")  
pretty_print(data)  
modify_value(data, 'age', 31)  
print("\n修改后数据:")  
pretty_print(data)  

# 删除 email  
delete_key(data, 'email')  
print("\n删除 email 后数据:")  
pretty_print(data)  

# 查找城市  
city = find_value(data, 'city')  
print(f"\n城市: {city}")  

# 替换兴趣  
replace_value(data, 'interests', 'reading', 'writing')  
print("\n替换兴趣后数据:")  
pretty_print(data)  

# 保存修改后的数据  
save_json(file_path, data)  
print("\n已保存修改后的数据,文件内容如下:")  
pretty_print(data)

总结

上述代码展示了如何在Python中使用json模块处理JSON文件的基本操作。根据需要,你可以在这些函数的基础上进行扩展或修改,以便满足具体需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值