Json files to Excel - Python
Json files to Excel - Python
"""
该脚本用于从指定文件夹中的所有JSON文件中提取特定路径下的数据,
并将这些数据以及对应的文件名导出到一个Excel文件中。
功能描述:
1. 读取指定文件夹内的所有JSON文件。
2. 根据提供的数据路径,从每个JSON文件中提取相应的数据。
3. 将提取的数据和文件名整理成列表。
4. 将数据列表转换为Pandas DataFrame,并在第一列添加文件名。
5. 将DataFrame导出到Excel文件,行号从1开始。
使用方法:
- 确保脚本运行环境中已安装Pandas库。
- 修改脚本中的`folder_path`变量为存储JSON文件的文件夹路径。
- 修改`data_path`变量为需要提取的JSON数据路径。
- 修改`output_file`变量为输出Excel文件的路径。
注意事项:
- 脚本假设所有JSON文件的结构都是一致的,并且每个文件中都包含指定路径下的数据。
- 如果JSON文件中的数据结构不一致,或者某些文件不包含指定路径下的数据,脚本可能需要相应的调整。
- 脚本中的行号调整是基于Pandas DataFrame的索引,这可能在某些情况下导致行号不连续。
依赖库:
- json: 用于解析JSON文件。
- pandas: 用于数据处理和导出Excel文件。
- os: 用于文件路径操作。
"""
import json
import pandas as pd
import os
def read_json_data( json_path, data_path ):
with open(json_path, 'r', encoding='utf-8') as file:
data = json.load(file)
# 根据提供的对象路径获取数据
current_data = data
for key in data_path.split('.'):
if current_data is not None:
current_data = current_data.get(key)
return current_data
def collect_data_from_folder( folder_path, data_path ):
data_list = []
file_names = []
# 遍历文件夹中的所有文件
for filename in sorted(os.listdir(folder_path)):
if filename.endswith('.json'):
json_path = os.path.join(folder_path, filename)
data = read_json_data(json_path, data_path)
if data is not None: # 确保data不是None
data_list.append(data)
file_names.append(filename)
return data_list, file_names
def export_to_excel( data_list, file_names, output_file ):
# 将数据转换为DataFrame
if all(isinstance(item, list) for item in data_list):
df = pd.DataFrame(data_list)
else:
# 如果数据不是列表形式,将其转换为列表形式
df = pd.DataFrame([item if isinstance(item, list) else [item] for item in data_list])
# 添加文件名列
df.insert(0, 'filename', file_names)
# 将DataFrame的索引加1,使得Excel的行号从1开始
df.index += 1
# 导出到Excel文件,不保存原来的索引
df.to_excel(output_file, index=False)
if __name__ == "__main__":
# 用户输入
folder_path = "./json_files"
data_path = "sim_result.port.Mode_Expansion_T_net._data"
output_file = "./out.xlsx"
# 收集数据
data_list, file_names = collect_data_from_folder(folder_path, data_path)
# 导出到Excel
export_to_excel(data_list, file_names, output_file)
print(f"数据已导出到Excel文件: {output_file}")
原文地址:https://blog.csdn.net/xzy3150787/article/details/142491055
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!