如何把一個臟亂的json文件借助pd.read_json命令整理成一個標準的數(shù)據(jù)框?
這里給大家上傳一個真實的數(shù)據(jù)情況(已經(jīng)經(jīng)過脫敏和截取處理)
如何將數(shù)據(jù)導入后變成如下這種格式?
感興趣的同學可以做一下
我這里把我寫的代碼給大家看一下
import pandas as pd
#讀入數(shù)據(jù),由于這個log文件格式比較特殊,不能用pd.read_json命令導入,需要用open導入成字符串然后進行處理
#注意open函數(shù)的第一個參數(shù)不能是一個網(wǎng)址,必須是一個文件才行
f1=open(r"D:\python課程\數(shù)據(jù)清洗(5)\pandas\0323.txt",encoding="utf-8")
#str1就是我們的文件內(nèi)容,是一個大字符串
str0=f1.read()
str0
#把\n\t變成逗號
str1=str0.replace("\n\t",",")
str1
#把雙逗號變成一個逗號 #這個地方需要注意,因為數(shù)據(jù)的異常情況比較特殊
str2=str1.replace(",,",",")
str2
str3=str2.replace("\n","")
str3
str4=str3.replace("\ufeff","")
str4
#把字符串中的//加一個數(shù)字變成逗號
import re
pattern1=re.compile("http:// \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")








暫無數(shù)據(jù)