python读取json指定数值

处理json大量数据使得我们非常头疼,因此我写了一段程序帮助实现读取指定数据,并遍历文件夹下所有的json文件。

import numpy as np
import jsonpath
import json
import os, glob
import pandas as pd
from natsort import ns,natsorted  #这个很重要,有利于按照run_0~403.csv的顺序读取csv文件
path_in = r'E:\PycharmProjects\ANN\Datas\Runs\perturbed'  # 文件夹位置
file_names = os.listdir(path_in)  # 文件夹位置
file_paths2 = glob.glob(os.path.join(path_in, "*.json"))
file_paths2 = natsorted(file_paths2, alg=ns.PATH)#自定义顺序排列
data_list1 = []
for json_folder in file_paths2:    #遍历文件夹中的json文件
    obj = json.load(open(json_folder, encoding='utf-8'))  # 注意,这里是文件的形式,不能直接放一个文件名的字符串
    ddate = jsonpath.jsonpath(obj, '$..new_val')# 文件对象中的指定Key值,
    data = np.array(ddate)
    data_list1.append(data)   #读取所有指定键值保存在数组中
    #print(ddate)
data_list2 = np.array(data_list1)
y = data_list2.reshape(404, 4)   #将数值格式变成矩阵
data = pd.DataFrame(y)
writer = pd.ExcelWriter('E:\PycharmProjects\ANN\Datas\SCOPE.xlsx')		# 写入Excel文件
data.to_excel(writer, 'Sheet1', float_format='%.5f', index=['N_ch_set', 'D_ch', 'mdot_hot_in_set', 'dmdot_hot_in_set'], header=None)   # ‘sheet1’是写入excel的sheet名
writer.save()
"""
for fn in filelist:
    exp_name = []
    file_name = os.path.join(foldername, fn)
    mdot = 0
    dhyd = 0

    with open(file_name, 'r') as json_reader:
        perturb_params = json.load(json_reader)
        for param in perturb_params:
            name = param['name']
            val = param['new_val']
            if name == "mdot_hot_in_set":
                mdot = float(val)
            else:
                dhyd = float(val)

            exp_name.append(f'{name}={val:.2g}')
    # file_name = file_name.replace('.json', '.csv')
df = pd.DataFrame(perturb_params)
df.to_excel(os.path.join(root, 'rumor.xlsx'),encoding='utf8')


import numpy as np
import openpyxl as op
from natsort import ns,natsorted  #这个很重要,有利于按照run_0~403的顺序读取json文件
import pandas as pd
import glob
import os

path_in = r'C:\PycharmProjects\ANN\Datas\Runs\perturbed'  # 文件夹位置
file_names = os.listdir(path_in)  # 文件夹位置
file_paths = glob.glob(os.path.join(path_in, "*.json"))   # 文件夹列表
file_paths = natsorted(file_paths, alg=ns.PATH)
# print(file_paths)
data_list = []
for i in list(range(0, 404)):
    df = pd.read_json(file_paths[i])
    data = df.to_excel
    #print(data)
    data_list.append(data)"""
    #print(data_list)

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值