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!================')
