使用Python处理JSON Lines格式的文件
常用来处理JSON Lines格式日志文件;也适用于.txt中存储的 JSON 数据。
著-------------Pan诶
1·准备
需要使用到的外部库:
Pandas、json。
导入库,代码如下:
import pandas as pd import jsonimport 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打开时中文不乱码