将多个npz合并并保存成json文件

json文件不可以保存array数组。所以需要先将词典转换为列表再保存成json文件。

from collections import defaultdict, OrderedDict

import os

import json

import numpy as np

import json

file_path = r"./test_npz/"

def switch_npz_to_json(data_type:str):

    os.makedirs(f'./{data_type}_npz/')

    filenames = os.listdir(file_path)

    all_file = {}

    json_path = f'./{data_type}_npz/all_data.json'

    for file in filenames:

        load_path = os.path.join(file_path, file)

        name = file.split('.')[0]

        datas = np.load(load_path, allow_pickle = True)

        key1 = 'target_sequence'

        key2 = 'binding_sites'

        key3 = 'binding_matrix'

        #JSON文件不能保存array数组。

        #value1 = np.array(datas['target_sequence'], dtype=np.int32)

        #value2 = datas['binding_sites'].tolist()

        #value3 = np.array(datas['binding_matrix'], dtype=np.int32)  

        value1 = datas['target_sequence'].tolist()

        value2 = datas['binding_sites'].tolist()

        value3 = datas['binding_matrix'].tolist()

        all_dict = {key1:value1, key2:value2, key3:value3}      

        all_file[f'{name}'] = all_dict

       

    with open(json_path, "w") as f:

        json.dump(all_file, f)

switch_npz_to_json('fragment')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值