前言
json解析数据的难点不在解析数据上,而是在去找哪个数据是错误的
比如说我今天解析的数据,原ext_info有95834条,解析出来有95864条,凭空多出了30条。
这种情况就是因为ext_info中有一条记录的json内容和其他不一样,导致这一条解析出了30条数据。
找错误的时候采用二分法去尝试哪部分数据多解析了,最后才定位到80166这条数据[哭泣]
解析代码
首先加载json模块
import json
def json_ext(data:pd.DataFrame,col_name,n=None)->pd.DataFrame:
data_target=[]
data.reset_index(inplace=True,drop=True)
if n==None:
n=data.shape[0]
for k in range(n):
a=data[col_name][k]
b=json.loads(a)
data_temp=pd.DataFrame.from_dict(b,orient='index').T
data_target.append(data_temp)
print('第{}条已经解析完成'.format(k))
else:
n=n
for k in range(n):
a=data[col_name][k]
b=json.loads(a)
data_temp=pd.DataFrame.from_dict(b,orient='index').T
data_target.append(data_temp)
print('第{}条已经解析完成'.format(k))
return pd.concat(data_target)
记录时间
datetime.datetime.now()
记录当前时间,返回datetime.datetime(年月日时分秒)
import datetime
t1=datetime.datetime.now()
mtdata=json_ext(xindai,col_name='ext_info')
t2=datetime.datetime.now()
timedelta=(t2-t1).seconds #返回执行的秒数