0%

pandas读取excel表格数据处理成json格式

hello 大家好我是Monday,今天给大家介绍下如何利用pandas 去处理excel文件数据成json格式

一、首先我有这种格式的excel文件

二、需求

把excel数据,读取成json格式的数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
"title" : "俞敏洪老师带队转型直播间,鲜美生活邀请您~" ,
"startLive" : "2022-11-22 07:45:19" ,
"liveTime" : "15h49m50s" ,
"totalUser" : 9488071 ,
"goodsNum" : 122 ,
"sales" : "20w+" ,
"gmv" : 16974690.350975998 ,
"url" : "" ,
"userCount" : 22633 ,
"uvVal" : 1.79 ,
"pitProduction" : "10w+" ,
"unitPrice" : 62.12 ,
"salesConRate" : "2.88%" ,
"refund" : "3000+" ,
"refundRate" : "1.4%" ,
"digg" : 6923940 ,
"fansInc" : 14184 ,
"fansIncRate" : "0.15%" ,
"avgUserDuration" : "2m16s" ,
"userNum" : 54213 ,
"shareCount" : 3310 ,
"watchNum" : 4724032 ,
"salesMin" : "200+" ,
"gmvMin" : "1w+" ,
"watchIncMin" : 9991.52 ,
"itemRate" : "74.57%" ,
"insert_time" : "20221123" ,
"uid" : "ss"
}

三、代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import pandas as pd

def excel_deal(path, uid):
keys = {
'直播间名称': 'title',
'开播时间': 'startLive',
'直播时长': 'liveTime',
'观看人次': 'totalUser',
'直播商品数': 'goodsNum',
'销量': 'sales',
'销售额': 'gmv',
'链接': 'url',
'平均在线': 'userCount',
# '千次观看成交金额': '',
'UV价值': 'uvVal',
'坑产': 'pitProduction',
'客单价': 'unitPrice',
'销售转化率': 'salesConRate',
# '商品总访客量': '',
# '观看-曝光转化率': '',
# '曝光-购买转化率': '',
'退货件数': 'refund',
'退货率': 'refundRate',
'点赞数': 'digg',
'新增粉丝': 'fansInc',
# '新增粉丝团': '',
'转粉率': 'fansIncRate',
'人均停留时长': 'avgUserDuration',
'人数峰值': 'userNum',
# '评论数': '',
'分享数': 'shareCount',
'观看人数': 'watchNum',
'分钟销量': 'salesMin',
'分钟销售额': 'gmvMin',
'分钟流量': 'watchIncMin',
'互动率': 'itemRate',

}
cols = [] # 设置读取excel 特定列的数据
clos_list = [] # 设置读取excel 特定列的数据
for k, v in keys.items():
cols.append(k)
if v == "":
continue
else:
clos_list.append(v)
# 创建最终返回的空字典
df_dict = {}
# 读取Excel文件
df = pd.read_excel(io=path, usecols=cols, na_values='#N') # 读取指定列的excel数据
df.fillna('', inplace=True) # 替换Excel表格内的空单元格,否则在下一步处理中将会报错

df_list = []
for i in df.index.values: # loc为按列名索引 iloc 为按位置索引,使用的是 [[行号], [列名]]
df.rename(columns=keys, inplace=True) # 重新替换列的名字 {"标题" : "title"}

df_line = df.loc[i, clos_list].to_dict() # 将每一行转换成字典后添加到列表

df_list.append(df_line)
df_dict['data'] = df_list

return df_dict


if __name__ == '__main__':
res = excel_deal("./2022-10-24-2022-11-23.xlsx", "ss")
print(res)

四、效果演示

结束语

​ 今天的分享就到这里了,欢迎大家关注微信公众号”菜鸟童靴