zoukankan      html  css  js  c++  java
  • 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!================')
    

      

  • 相关阅读:
    Nginx和PHP-FPM的启动、重启、停止脚本分享
    [Linux]Fedora19修复被Windows干掉的引导
    [Linux]RHEL/CentOS6配置tomcat使用80端口(与httpd整合)
    [Linux]SAMBA共享打印机
    [Linux]配置Logwatch使用第三方smtp发送电子邮件
    [oVirt]在双网卡网络环境下使用oVirt LiveCD
    走进Linux世界主题讲座纪录
    mysql用户及权限复制
    记一次失败的K8S安装部署
    HTTP状态码与爬虫
  • 原文地址:https://www.cnblogs.com/niulang/p/12096239.html
Copyright © 2011-2022 走看看