Python遍历文件夹 处理json文件的方法


Posted in Python onJanuary 22, 2019

有两种做法: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"
}

以上这篇Python遍历文件夹 处理json文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的文件和目录操作实现代码
Mar 13 Python
介绍Python中的一些高级编程技巧
Apr 02 Python
python实现图书管理系统
Mar 12 Python
django解决跨域请求的问题
Nov 11 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
pandas的相关系数与协方差实例
Dec 27 Python
pytorch 获取tensor维度信息示例
Jan 03 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
Python 读取WAV音频文件 画频谱的实例
Mar 14 Python
Python用K-means聚类算法进行客户分群的实现
Aug 23 Python
使用Python拟合函数曲线
Apr 14 Python
Python多线程原理与用法实例剖析
Jan 22 #Python
python解析含有重复key的json方法
Jan 22 #Python
Python设计模式之简单工厂模式实例详解
Jan 22 #Python
对python字典过滤条件的实例详解
Jan 22 #Python
python实现淘宝秒杀脚本
Jun 23 #Python
python实现网页自动签到功能
Jan 21 #Python
python实现桌面壁纸切换功能
Jan 21 #Python
You might like
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
用libTemplate实现静态网页的生成
2006/10/09 PHP
php中如何使对象可以像数组一样进行foreach循环
2013/08/09 PHP
php操作mysqli(示例代码)
2013/10/28 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
PHP 获取 ping 时间的实现方法
2017/09/29 PHP
php代码调试利器firephp安装与使用方法分析
2018/08/21 PHP
Laravel框架实现简单的学生信息管理平台案例
2019/05/07 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
jQuery控制Div拖拽效果完整实例分析
2015/04/15 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
解决vue 界面在苹果手机上滑动点击事件等卡顿问题
2018/11/27 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
python求素数示例分享
2014/02/16 Python
使用Python的urllib和urllib2模块制作爬虫的实例教程
2016/01/20 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
Python 反转字符串(reverse)的方法小结
2018/02/20 Python
Python中判断输入是否为数字的实现代码
2018/05/26 Python
在dataframe两列日期相减并且得到具体的月数实例
2018/07/03 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
对python pandas读取剪贴板内容的方法详解
2019/01/24 Python
python文件读写代码实例
2019/10/21 Python
Ever New加拿大官网:彰显女性美
2018/10/05 全球购物
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
万年牢教学反思
2014/02/15 职场文书
党的群众路线教育实践活动个人整改方案
2014/09/21 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
清明节随笔
2015/08/15 职场文书
基于Pygame实现简单的贪吃蛇游戏
2021/12/06 Python