如何遍历GCP存储桶不同文件夹中的JSON文件并生成DataFrame
批量读取GCS文件夹下DOCAI JSON文件并合并为DataFrame
以下是实现批量遍历GCS指定文件夹内所有JSON文件、解析并合并为单个DataFrame的代码:
import gcsfs import json import pandas as pd # 初始化GCS文件系统 gcs_file_system = gcsfs.GCSFileSystem(project="your-project-name") # 指定GCS存储桶下的目标文件夹路径(格式:bucket-name/folder-path/) gcs_folder_path = "your-bucket-name/docai-export-folder/" # 获取文件夹下所有JSON文件的路径 json_files = gcs_file_system.glob(f"{gcs_folder_path}*.json") # 初始化空列表用于存储每个文件的DataFrame df_list = [] # 遍历所有JSON文件 for file_path in json_files: with gcs_file_system.open(file_path) as f: json_dict = json.load(f) # 解析JSON并提取entities字段数据 single_df = pd.json_normalize(json_dict, record_path=['entities']) # 可选:添加文件名列,方便后续溯源 single_df['source_file'] = file_path.split("/")[-1] df_list.append(single_df) # 合并所有DataFrame merged_df = pd.concat(df_list, ignore_index=True) # 查看合并后的数据 print(merged_df.head())
关键说明:
- 使用
gcsfs.GCSFileSystem.glob()方法匹配目标文件夹下所有.json后缀的文件,实现批量获取文件路径 - 循环中逐个读取并解析JSON文件,沿用你原有的
pd.json_normalize逻辑提取entities字段 - 通过
pd.concat()将多个DataFrame合并为一个,ignore_index=True重置索引避免重复 - 可选添加
source_file列,方便后续验证时定位数据来源
内容的提问来源于stack exchange,提问作者Vedant Patil
相关产品推荐
相关产品推荐

