当前位置: 首页 > news >正文

使用Python处理JSON Lines格式的文件

使用Python处理JSON Lines格式的文件

常用来处理JSON Lines格式日志文件;也适用于.txt中存储的 JSON 数据。

著-------------Pan诶

1·准备

需要使用到的外部库:

Pandas、json。

导入库,代码如下:

import pandas as pd import json
  • import pandas as pd:导入pandas库并简写为pd,pandas是数据处理的核心库

  • import json:导入Python内置的json库,用于解析JSON格式数据

2. 读取文件并解析JSON数据,处理过程

data = [] with open('your_log_file.jsonl', 'r', encoding='utf-8') as f: for line in f: if line.strip(): # 跳过空行 data.append(json.loads(line.strip())) df = pd.DataFrame(data) df.to_csv('处理后的数据.csv', index=False, encoding='utf-8-sig')

超级无敌逐行拆分解释:

  • data = []
    • 创建一个空列表,用于存储解析后的数据

  • with open('your_log_file.jsonl', 'r', encoding='utf-8') as f:
    • with:上下文管理器,自动处理文件的打开和关闭

    • open():打开文件函数

    • 'your_log_file.jsonl':需要处理的文件名

    • 'r':“read”的缩写,只读模式

    • encoding='utf-8':指定文件编码,避免中文乱码

    • as f:将文件对象赋值给变量f

  • for line in f:
    • 用for进行循环,逐行读取文件内容

  • if line.strip():
    • line.strip():去除行首尾的空白字符(空格、换行符等) —— strip()会移除这些空白字符,得到干净的JSON字符串

    • 运行规则:如果去除空白后不是空字符串,则执行下一行

  • data.append(json.loads(line.strip()))
    • json.loads():将JSON字符串解析为Python字典

    • line.strip():确保字符串前后没有空白字符

    • data.append():将解析后的字典添加到data列表中

剩余步骤,这里data数据已经处理的差不多了,你可以使用Pandas创建DataFrame ;也可以直接访问数据。我这里以创建DataFrame为例进行演示

3. 创建DataFrame

df = pd.DataFrame(data)
  • pd.DataFrame():pandas的核心函数,将数据转换为二维表格结构

  • data:包含所有字典的列表,每个字典成为DataFrame的一行

4. 导出为CSV

df.to_csv('处理后的数据.csv', index=False, encoding='utf-8-sig')
  • df.to_csv():将DataFrame导出为CSV文件

  • '原始数据.csv':输出的文件名

  • index=False:不保存行索引(0,1,2,3...)

  • encoding='utf-8-sig':使用带BOM的UTF-8编码,确保Excel打开时中文不乱码

http://www.cnnetsun.cn/news/138658.html

相关文章:

  • 【RT-DETR涨点改进】独家创新首发、Neck特征融合改进篇 | TGRS 2025顶刊 | RT-DETR引入HFFE高低频特征融合模块,增强多层次特征融合、噪声抑制,助力目标检测有效涨点
  • 【荐书】掌握LLM,全套方法就在这本书里
  • 【必藏】网络运维与网络安全运维的区别解析:就业前景与学习路线全攻略
  • FPGA实现Sobel边缘检测与中值滤波:基于灰度图像处理的探索
  • SC6D10170H-JSM 碳化硅肖特基二极管
  • 探索三相光伏并网仿真模型:从原理到实现
  • 引领测试创新:领导力在软件质量保障中的核心作用
  • 29、认证与虚拟专用网络协议配置及故障排除指南
  • 深度学习初学者指南
  • 基于PLC的蔬菜大棚温湿度环境控制系统设计
  • 基于RBF神经网络的车速时序预测
  • linux——进程状态
  • 推荐一个langchain开发工具包:langchain-dev-utils
  • 有序二叉树节点的删除
  • “即插即用”的智能升级:具身智能模块如何破解机器人产业化难题
  • AI驱动的芯片设计革命:当算法开始替代“老师傅”的经验
  • 基于深度学习的交通标志检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习的大豆检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习的苹果腐烂检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习的食物检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • 基于深度学习的数字识别检测系统(YOLOv10+YOLO数据集+UI界面+Python项目源码+模型)
  • STM32定时器定时中断
  • 打破离散制造“内卷”:工业智能体(AI Agent)落地的五大核心原则
  • C语言 操作符 关系操作符 笔记
  • 2025年战略咨询在行业标准演进中的推动力
  • 【电商API接口】电商平台价格监控行业全景:数据驱动的定价革命
  • java计算机毕业设计蔬菜配送系统 生鲜直配平台的设计与实现 社区蔬菜一站式采购与配送管理系统
  • dubbo源码之一次RPC请求的生死之旅(基于Dubbo 2.7.8)
  • 基于SpringBoot+Vue的web城乡居民基本医疗信息管理系统管理系统设计与实现【Java+MySQL+MyBatis完整源码】
  • 【完整源码+数据集+部署教程】手势与标志识别检测系统源码[一条龙教学YOLOV8标注好的数据集一键训练_70+全套改进创新点发刊_Web前端展示]