1、json文件如下:
{"tasks":
[{"name": "allen",
"params": {"ftpDatasourceId": 2,"targetConfig":
{"database": "ods", "description": "", "table": "allen_keep_moving"},
"basePath": "/allen_keep_moving/$[yyyyMMdd-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
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文件