Python修改json中元素的值

1、json文件如下:

{"tasks": 
[{"name": "allen", 
"params": {"ftpDatasourceId": 2,"targetConfig": 
{"database": "ods", "description": "", "table": "allen_keep_moving"}, 
"basePath": "/allen_keep_moving/$[yyyyMMdd-1]" }
}]
}

Python修改json中元素的值_第1张图片

import json
"""python中读取文件中的内容,并更修改"""
with open("idp_backend.json",'rb') as f:
    # 获取json文件对象
    loads = json.loads(f.read())
    # 逐个遍历数组中的对象,更改数组中对应对象的值
    for item in loads['tasks']:
        item['name'] = "allen"
        item['params']['targetConfig']['table'] = "allen_keep_moving"
        item['params']['basePath'] ="/allen_keep_moving/$[yyyyMMdd-1]"
    # 写入到目标文件    
    with open("json_value_change","w") as f:
        json.dump(loads,f)
        print("-------文件加载success----------")

2、简单文件修改
编辑前的文件,code值为200

在这里插入图片描述

import json
 
# 获取json里面数据
def get_json_data():
    with open('D:\z\mytest\htest.json', 'rb') as f:  # 使用只读模型,并定义名称为f
        params = json.load(f)  # 加载json文件
        params["code"] = "404"  # code字段对应的值修改为404
        print("params", params)  # 打印
    return params  # 返回修改后的内容
    
# 写入json文件
def write_json_data(params):
    # 使用写模式,名称定义为r
    #其中路径如果和读json方法中的名称不一致,会重新创建一个名称为该方法中写的文件名
    with open('D:\z\mytest\htest.json', 'w') as r:
        # 将dict写入名称为r的文件中
        json.dump(params, r)
 
# 调用两个函数,更新内容
the_revised_dict = get_json_data()
write_json_data(the_revised_dict)

编辑后的文件,code值为404
在这里插入图片描述
3、修改json中数组对象中的值
修改前,imp字段中的deeplink的值为before
Python修改json中元素的值_第2张图片

import json
 
# 获取json里面数据
def get_json_data():
    with open('D:\z\mytest\kkkl.json', 'rb') as f:  # 使用只读模型,并定义名称为f
        params = json.load(f)  # 加载json文件中的内容给params
        # params["code"] = "505"
        params["imp"][0]["deeplink"] = "end"  # imp字段对应的deeplink的值修改为end
        print("修改后的值", params["imp"][0]["deeplink"])  # 打印
    return params  # 返回修改后的内容
 
# 写入json文件# 使用写模式,名称定义为r
def write_json_data(params):
    with open('D:\z\mytest\kkkl.json', 'w') as r:
        # 将params写入名称为r的文件中
        json.dump(params, r)
 
# 调用两个函数,更新内容
the_revised_dict = get_json_data()
write_json_data(the_revised_dict)

修改后,imp字段中的deeplink的值为end
Python修改json中元素的值_第3张图片

参考文献:python编辑json文件

你可能感兴趣的:(深度学习,工程,python,json,开发语言)