如何把一个脏乱的json文件借助pd.read_json命令整理成一个标准的数据框?
这里给大家上传一个真实的数据情况(已经经过脱敏和截取处理)
如何将数据导入后变成如下这种格式?
感兴趣的同学可以做一下
我这里把我写的代码给大家看一下
import pandas as pd
#读入数据,由于这个log文件格式比较特殊,不能用pd.read_json命令导入,需要用open导入成字符串然后进行处理
#注意open函数的第一个参数不能是一个网址,必须是一个文件才行
f1=open(r"D:\python课程\数据清洗(5)\pandas\0323.txt",encoding="utf-8")
#str1就是我们的文件内容,是一个大字符串
str0=f1.read()
str0
#把\n\t变成逗号
str1=str0.replace("\n\t",",")
str1
#把双逗号变成一个逗号 #这个地方需要注意,因为数据的异常情况比较特殊
str2=str1.replace(",,",",")
str2
str3=str2.replace("\n","")
str3
str4=str3.replace("\ufeff","")
str4
#把字符串中的//加一个数字变成逗号
import re
pattern1=re.compile("// \d+")
str5=re.sub(pattern1,",",str4)
#把中文冒号变成英文冒号
str6=str5.replace(":",":")
#接下来把字符开头第一个逗号去掉
pattern2=re.compile("^,")
str7=re.sub(pattern2,"",str6)
#把两个双引号替换为一个双引号
pattern3=re.compile("\"{2}")
str8=re.sub(pattern3,"\"",str7)
#用中括号将字符串两边包裹起来
str9='['+str8+']'
str9
df1=pd.read_json(str9,orient="records")
df1.to_excel("D:\\临时.xlsx")