• python解析json文件信息到csv中


    json格式多种多样,本代码着重看函数部分

    import json, csv, os
    import pandas as pd
    josns_root = 'jsons'
    csvs_root = 'csvs'
    list_josn = os.listdir(josns_root)
    for bb in list_josn:
        path_json_ = bb #请修改json路径
        path_json = os.path.join(josns_root, path_json_)
        path_csv_ = path_json_.split('.')[0]+'.csv'
        path_csv = os.path.join(csvs_root, path_csv_)
        if os.path.exists(path_csv):
            print('路径已存在,请解决冲突', path_csv)
            exit()
        open(path_csv, 'w').close()
        list_ = [200,50,51]
        f = open(path_json, encoding='utf-8') # 载入json文件
        setting = json.load(f)
        data = setting['data']
        data1 = data['imgs']
        print(type(data1))
        headers = ['fov_id', 'cells_fit', 'cells_P', 'cells_N']
        with open(path_csv, 'a')as csvfile:
             writer = csv.writer(csvfile)
             writer.writerow(headers) # 写每列标题
             csvfile.close()
        cnt = 1
        for i in data1:
            print('当前FOV编号:',cnt)
            cnt = cnt + 1
            i_dict = dict(i)
            FOV_id = i_dict['id']
            cells = i_dict['cells']
            type_la = []
            total_la = []
            for m in cells:
                m_dict = dict(m)
                type_ = m_dict['type']
                total = m_dict['total']
                #print(type_, total)
                type_la.append(type_)
                total_la.append(total)
            out_ = dict(zip(type_la,total_la))
            str1 = [None,None,None]
            cnt_ = 0
            cnt__ = 0
            for lala in list_:
                if len(list(out_.keys())) == 0:
                    continue
                if lala in list(out_.keys()):
                    str1[cnt_] = list(out_.values())[cnt__]
                    cnt__ = cnt__ + 1
                cnt_ = cnt_ + 1
            rows = [str(FOV_id), str1[0], str1[2], str1[1]]
            with open(path_csv, 'a')as csvfile:
                writers = csv.writer(csvfile, delimiter=',')
                writers.writerow(rows) # 按行写入csv
                csvfile.close()
        print('==============task OK!================')
    

      

  • 相关阅读:
    note 11 字典
    note10 元组
    hibernate环境搭建及操作
    JAVA中解决Filter过滤掉css,js,图片文件等问题
    过滤器
    MySQL存储过程(转)
    用java调用oracle存储过程总结(转)
    Oracle分页查询语句的写法(转)
    数据访问类的封装
    事务的特性及事务的隔离级别(转)
  • 原文地址:https://www.cnblogs.com/niulang/p/12096239.html
Copyright © 2020-2023  润新知