博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
web页面和本地数据对比问题
阅读量:6980 次
发布时间:2019-06-27

本文共 1508 字,大约阅读时间需要 5 分钟。

缘起

最近工作上出现了遇到了几个类似的问题:页面上有值,excel里有值,需要比较二者是否一致。小麻烦有:

1.对于页面上的值,有时是页面表格里的一列或几列,无法直接勾选并复制出来。即便复制出来,也很不整齐。
2.数据多,只以肉眼比较,让人怀疑人生。

对策

记录下自己目前的解决方案:

1.用Chrome的开发者工具,在network一页中,查看POST的内容,得到json字符串。
也可以用Chrome插件xpath finder找到某一条记录的xpath,再改动xpath,让其定位整列,这样在插件内部就可以直接复制到想要的值
2.用python读入excel特定列的内容,与从页面上取到的值比较。

记录

1.

获得的json字符串未必规整,可以在notepad++中去掉反斜杠。想要查看,可以在一些网站处理,看起来更舒服些(如)

 

对想要获取的列,选取一个元素,查看其xpath地址,贴到xpath helper中,修改高一级节点,就能定位整列。

 

2.

用pyton读取excel里的值,只需要使用openpyxl库即可。比较数据差异,可使用python的集合对象,既可去重,又可求差集,可谓简便。

import jsonfrom openpyxl import load_workbookdef process(filename, column):    info_list = []    workbook = load_workbook(filename)    worksheet = workbook.active    for i in range(2, worksheet.max_row+1):        info_list.append(worksheet.cell(row=i, column=column).value)    return info_list# json字符串raw_str = '''{\"mate\":{\"success\":true,\"message\":\"00001\",\"status\":200},\"data\":{\"ItemInfo\":{\"PG1\":[{\"PG1\":\"256\"},{\"PG1\":\"456\"}],\"PG2\":[{\"PG2\":\"257\"},{\"PG2\":\"732\"}]}}}'''# 转为pyhton对象o = json.loads(raw_str)# 取到想要的信息pg1 = o['data']['ItemInfo']['PG1']pg2 = o['data']['ItemInfo']['PG2']pg1_list = []pg2_list = []for i in pg1:    pg1_list.append(i['PG1'])for j in pg2:    pg2_list.append(j['PG2'])ex_pg1 = process(r'C:\Users\username\Desktop\pg.xlsx', 2)ex_pg2 = process(r'C:\Users\username\Desktop\pg.xlsx', 3)# 利用集合,既可去重,也可求其差集,见其区别pg1_diff = set(ex_pg1) - set(pg11)pg2_diff = set(ex_pg2) - set(pg22)print(pg1_diff, pg2_diff)

 

转载于:https://www.cnblogs.com/yifeixu/p/10910446.html

你可能感兴趣的文章
前端小知识
查看>>
echo使用说明,参数详解
查看>>
双边滤波算法的简易实现bilateralFilter
查看>>
qt5.6.3下使用firebird
查看>>
子弹实例化的代码
查看>>
Cgroup
查看>>
URAL 2027 URCAPL, Episode 1 (模拟)
查看>>
hadoop install start-dfs.sh 失败
查看>>
windowsXP用户被禁用导致不能网站登录
查看>>
css左固定右自适应常用方法
查看>>
手机安全卫士——软件管理-用户程序和系统程序
查看>>
MySQl创建用户和授权
查看>>
django框架的基础知识点《贰》
查看>>
[NHibernate]代码生成器的使用
查看>>
重新安装nginx注意事项
查看>>
【转载】mysql常用函数汇总
查看>>
Kinect For Windows V2开发日志九:侦测并绘制人体骨架
查看>>
vue下的bootstrap table + jquery treegrid, treegrid无法渲染的问题
查看>>
Template mode "HTML5 " has not been configured
查看>>
功能点分析:商品类目表
查看>>