如果文件夹下有大量JSON文件,如何处理效率更高?
时间: 2024-11-04 15:14:24 浏览: 5
jsonref:JSON文件供App参考
当面对大量JSON文件时,可以采用流式处理(streaming)的方式,而不是一次性读取所有文件到内存中。Python 的 `json` 模块提供了一个名为 `json.JSONDecoder` 的类,它允许你在读取大文件时只解析一部分数据。
你可以使用 `open()` 函数配合 `json.JSONDecoder` 进行逐行读取和解码。这里有一个示例:
```python
import json
def read_json_files_in_folder(folder_path):
decoder = json.JSONDecoder()
for file_name in os.listdir(folder_path): # 替换为实际文件夹路径
if file_name.endswith('.json'):
with open(os.path.join(folder_path, file_name), 'r') as f:
for line in f:
try:
yield decoder.decode(line.strip())
except json.JSONDecodeError:
# 处理可能出现的JSON解析错误
pass
# 使用生成器迭代文件内容
for item in read_json_files_in_folder('/path/to/your/folder'):
# 打印、处理每一项数据
print(item)
```
这样,你就不需要一次性加载所有文件,而是按需处理每个文件的一小部分,节省了内存资源。
阅读全文