python读取json格式文件

python读取json格式文件

先把代码贴出来,之后慢慢修饰,添加注释把

import json
import ast
###########################################
# json格式文件——获取数据
def processData(path):
    obj = open(path,'r',encoding='utf-8')
    inputData = []
    outputData = []
    for line in obj.readlines():
        dic = json.loads(line)
        t = dic['input'],dic['output']
        inputData.append(t[0])
        outputData.append(t[1])
    obj.close()
    return inputData, outputData
##########################################   
# json格式文件——获取参数
def processParam(path):
    obj = open(path,'r',encoding='utf-8')
    param = []
    for line in obj.readlines():
        dic = json.loads(line)
        t = dic['iterationTime'],dic['initialIndividual'],dic['activationFunction'],dic['cross'],dic['mutant']
        for i in range(len(t)):
            param.append(t[i])
    obj.close()
    return param
##########################################
# json格式文件——获取知识
def processKnow(path):
    obj = open(path,'r',encoding='utf-8')
    inputData = []
    outputData = []
    status = []
    for line in obj.readlines():
        dic = json.loads(line)
        t = dic['inputs'],dic['outputs'],dic['status']
        inputData.append(t[0])
        outputData.append(t[1])
        status.append(t[2])
    obj.close()
    return inputData, outputData, status
#################################################
# 知识字典获取方法
def processKnow_data(inputKnow, inputKnow_P,inputKnow_b):
    for i in range(len(inputKnow)):
        know_dict = ast.literal_eval(inputKnow[i])
        inputKnow_P.append([])
        inputKnow_b.append([])
        for key in know_dict:
            inputKnow_P[i].append(key)
            inputKnow_b[i].append(know_dict[key])
    return inputKnow_P,inputKnow_b
#########################################
# 获取路径
path_data = "F:\TestData.json"
path_param = "F:\TestParam.json"
path_know = "F:\TestKnow.json"
##########################################

inputData, outputData = processData(path_data)
param = processParam(path_param)
inputKnow, outputKnow, status = processKnow(path_know)
inputKnow_P = []
inputKnow_b = []
outputKnow_P = []
outputKnow_b = []



in_P,in_B = processKnow_data(inputKnow, inputKnow_P,inputKnow_b)
out_P, out_B = processKnow_data(outputKnow, outputKnow_P,outputKnow_b)

TestData.json文件:
在这里插入图片描述
TrstParam.json文件:
在这里插入图片描述

TestKnow.json文件:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值