Python遍历文件夹 处理json文件

有两种做法:os.walk()、pathlib库,个人感觉pathlib库的path.glob用来匹配文件比较简单。

下面是第二种做法的实例(第一种做法百度有很多文章):
 
from pathlib import Path
import json

analysis_root_dir = "D:\\analysis_data\json_file"
store_result="D:\\analysis_data\\analysis_result\\dependency.csv"

def parse_dir(root_dir):
    path = Path(root_dir)

    all_json_file = list(path.glob('**/*.json'))

    parse_result = []

    for json_file in all_json_file:

        # 获取所在目录的名称
        service_name = json_file.parent.stem
        with json_file.open() as f:
            json_result = json.load(f)
        json_result["service_name"] = service_name
        parse_result.append(json_result)

    return  parse_result

def write_result_in_file(write_path , write_content):

    with open(write_path,'w') as f:
        f.writelines("service_name,action,method,url\n")
        for dict_content in write_content:
             url = dict_content['url']
             method = dict_content['method']
             action = dict_content['action']
             service_name = dict_content['service_name']
             f.writelines(service_name + ","+ action+","+method + ","+ url+"\n")

def main():
    print("main begin...")
    parse_result = parse_dir(analysis_root_dir)
    print(parse_result)
    write_result_in_file(store_result,parse_result)
    print("main finished...")

if __name__ == '__main__':
    main()
 
 
运行结果
main begin...
[{'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService01'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService02'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService03'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService04'}, {'url': '/rest/webservice/v1/dosomthing', 'method': 'post', 'action': 'create', 'service_name': 'WebSubService05'}]
main finished...
 
目录结构


json file内容
{
	"url":"/rest/webservice/v1/dosomthing",
	"method":"post",
	"action":"create"
}

                
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值