在大数据中常常需要对非结构化数据进行处理,包括经常使用的json格式,因此可以先转化为python对象,清洗,提取后再使用pandas处理.
目标文件:文件夹中有多个文件记录 用户访问网站信息,文件为json格式,且多个层级嵌套:{"hits":[{"type":"","id":"","source":{"url":"","uesrname":""}},{...},{...}]}
需求:提取username,userid,time,url,保存到csv格式文件
分析:关键是解析json格式的内容,
- 处理json格式文件;
- 提取需要的字段和值;
- 转换为DataFrame;
- 保存目标格式:csv,excel,....
代码逻辑:
import os
import json
import pandas as pd
path = r'...\\hits'
result = [] #保存点击记录 用户信息,后面给到pandas使用
#循环取每个文件中的信息
for file in os.listdir(path=path):
f_path = path+'\\\\'+file
#读取每个文件json数据
with open(f_path,'r',encoding='utf8') as f:
temp_dict = json.load(f)
for ele_list in temp_dict["hits"]:
r_dict = {...} #临时字典保存取出的字段值
.... #取出需要的字段值,追加到result中