最近忙成狗了,很少挤出时间来学习,大部分时间都在加班测需求,今天在测一个需求的时候,需要对比数据同步后的数据是否正确,因此需要用到json对比差异,这里使用deepdiff。...一般是用deepdiff进行对比的时候,常见的对比是对比单个的json对象,这个时候如果某个字段的结果有差异时,可以使用exclude_paths选项去指定要忽略的字段内容,可以看下面的案例进行学习:...那么如果数据量比较大的话,单条对比查询数据效率比较低,因此,肯呢个会调用接口进行批量查询,然后将数据转成[{},{},{}]的列表形式去进行对比,那么这个时候再使用exclude_paths就无法直接简单的排除某个字段了...从上图可以看出,此时对比列表元素的话,除非自己一个个去指定要排除哪个索引下的字段,不过这样当列表的数据比较多的时候,这样写起来就很不方便,代码可读性也很差,之前找到过一个用法,后来好久没用,有点忘了,今晚又去翻以前写过的代码记录...,终于又给我找到了,针对这种情况,可以使用exclude_regex_paths去实现: 时间有限,这里就不针对deepdiff去做过多详细的介绍了,感兴趣的小伙伴可自行查阅文档学习。
解决Python "object is not subscriptable" 的问题编程中,当你尝试使用下标操作符[]来访问对象的属性或元素时,有时会遇到"object is not subscriptable...总结在Python编程中,使用下标操作符[]来访问对象的属性或元素是很常见的。...应用场景示例:处理JSON数据在实际的应用中,我们经常需要处理JSON数据,使用下标操作符[]来访问JSON数据的属性或元素。...使用键访问属性在字典或其他类似字典的对象中,我们可以通过键来访问相应的属性或值。同样,可以通过实现__getitem__()方法来支持使用键访问属性。...__getitem__()方法也可以接受多个参数,用于实现更复杂的下标访问。例如,可以在类中实现__getitem__(self, key1, key2)来支持使用多个键访问属性或元素。
,不知道大家是否发现了一个规律:凡是成对出现的属性,一般都有一个组合属性,名字带有 toggle 2.2 链式调用 链式调用,其实就是将多个方法一直拼接在对象后面,像链条一样调用。...2.3 属性操作 还记得昨天总结中 js 对象如何获取元素内容嘛?没错,是 innerHTML。...出现零次或一次(最多出现一次) + 出现一次或多次(至少出现一次) * 出现零次或多次(任意次) {n} 出现n次 {n,m} 出现n到m次 {n,} 至少出现n次 范围:使用中括号将可选内容列出,代表内容中任意一个...,可以简单的理解为一个键值对的集合,也就是 python 中的字典,键就是调用每个值的名称,值就是变量、函数、对象这些。...面向对象编程深入人心,有着 python 、java 的基础,大家应该不难理解。接下来说一下 js 中如何创建一个对象,并对其进行操作。
为什么要使用 super?请举例说明。 答:super 用于继承父类的方法、属性。super 是新式类中才有的,所以 Python2 中使用时,要在类名的参数中写 Object。...json:true、false、null python:True、False、None json中文必须是unicode编码,如”\u6211″. json的类型是字符串,字典的类型是字典。...答:1,触发动态加载元素的事件,直至动态元素出现,进行定位 2,WebDriverWait()方法循环去查询是否元素加载出来了 11、如何去定位属性动态变化的元素?...答:简单来说,就是把页面作为对象,在使用中传递页面对象,来使用页面对象中相应的成员或者方法,能更好的体现面向对象语言(比如java或者python)的面向对象和封装特性。...断言是指定一个程序必须已经存在的状态的一个逻辑表达式,或者一组程序变量在程序执行期间的某个点上必须满足的条件 UI自动化中断言方式:定位页面当前页面或跳转页面中元素唯一的一个或多个元素判断是否存在,即可
内置的type()函数可以用来查询变量所指的对象类型。 Python可以同时为多个变量赋值,如a, b = 1, 2。 一个变量可以通过赋值指向不同类型的对象。...字符串可以用+运算符连接在一起,用*运算符重复。 Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。 Python中的字符串不能改变。...在比较时,Python 会将 True 视为 1,False 视为 0。 布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。...list、dict、tuple json.dumps() 将python对象编码成Json字符串 返回json字符串 json.loads() 将Json字符串解码成python对象 返回python对象...json.dump() 将python中的对象转化成json储存到文件中 无返回 json.load() 将文件中的json的格式转化成python对象提取出来 返回python对象 五、其它函数
在“提取数据”这一步骤中,主要用到了两个工具。针对HTML页面,可以使用 XPath 进行元素定位,提取数据;针对JSON数据,可以使用JSON进行解析。...XPath定位 XPath是XML的路径语言,实际上是通过元素和属性进行导航,帮我们定位位置。它有几种常用的路径表达方式。 ?...对象 JSON是一种轻量级的交互方式,在Python中有JSON库,可以让我们将Python对象和JSON对象进行转换。...这里通过XPath语法匹配到了多个元素,因为是多个元素,所以我们需要用for循环来对每个元素进行提取。...这节课,我想让你掌握的是: Python爬虫的流程; 了解XPath定位,JSON对象解析; 如何使用lxml库,进行XPath的提取; 如何在Python中使用Selenium库来帮助你模拟浏览器
序列化可以把一个对象和一个列表或字典,通过python特有的方式序列化一下,以二进制的方式加密一下。...就像上面的代码,self就代表的pp这个对象。 定义在类里面的属性,属于类的,不属于对象,直接可以使用使用类名.属性名调用,如:上段代码中的Person.name。 属于类的字段称为静态字段。...通过self调用的称为动态字段(比如说:在__init__中调用的字段)。 类不能直接访问对象的属性,对象可以直接访问类的属性。...在一个类中定义静态方法的办法:直接在方法上面添加@staticmethod,去掉方法中的self。因为self代表的是一个对象。 在类中定义的静态方法可以使用类来调用,也可以使用对象来调用。...对象的属性:在类中定义一个方法,在该方法上添加@property, 就把该方法变成了对象的一个属性。访问的方式:对象名.属性名 pp.property 后面没有小括号。
要判断一个元素在不在字典或集合内,可以用 value in dict/set 来判断。...排序:字典可使用函数sorted()并且指定键或值,进行升序或降序排序;集合排序直接调用 sorted(set) 即可。...实际应用中遇到多种数据类型混在一起的情况可使用JSON序列化处理: json.dumps() 函数,接受 Python 的基本数据类型,然后将其序列化为 string。...使用range() 函数,拿到索引,再去遍历访问集合中的元素。...在实际工作中,我们更倾向于使用后者,因为其表达清晰明了,不易出错。 python变量及其赋值 变量的赋值,只是表示让变量指向了某个对象,并不表示拷贝对象给变量;而一个对象,可以被多个变量所指向。
PO是page Object 模式的简称,它是一种设计思想,意思是把一个页面,当作一个对象,页面的元素和元素之间的操作方法就是页面对象的属性和行为,PO模式一般使用三层架构,分别为基础封装层BasePage...① dict转json 使用json.dumps,python对象编码成json对象。...示例代码如下: 输出结果如下: ② json转dict 使用json.loads,将json对象解码成python对象。...id:根据id来获取元素,返回单个元素,id值一般是唯一的; name:根据元素的name属性定位; tagName:根据元素的标签名定位; className:根据元素的样式class值定位; linkText...:根据超链接的文本值定位; partiaLinkText:根据超链接的部分文本值定位; cssSelector:css选择器定位; xpath:通过元素的路径、属性定位。
在Python中,json是用于处理JSON数据的内置模块,而jsonpath是用于从JSON数据中提取特定数据的查询语言和相关库。...它提供了一种灵活的方式来定位和提取JSON对象中的数据,可以使用通配符、过滤器等功能进行精确的数据定位。...jsonpath用法 从上述可知,jsonpath是一种用于从JSON对象中提取特定数据的查询语言,类似于XPath,可以更精确地定位JSON对象中的数据。...常用的jsonpath操作符和通配符额: $: 根对象 @: 当前对象 .: 子对象 ..: 递归地查找子对象 *: 通配符,匹配任何属性或数组元素 []: 过滤器,用于指定属性或数组元素的条件 下面是一个使用...响应中提取了不同的数据,包括单个属性的值、数组中的所有元素、满足条件的元素、嵌套属性的值以及多个属性的值并进行组合。
JSON(JavaScript 对象表示法)响应是一种被广泛接受的数据格式,服务器通过它响应客户端的请求。每当客户端从服务器请求某些 API 或信息时,都会生成响应并将 API 传递给客户端。...由于我们使用的是python,我们的任务是从这个响应中检索单个值,我们将这些对象转换为字典。现在我们已经简要了解了 JSON 响应,让我们了解提取部分。...JSON 对象在“json()”方法的帮助下转换为字典。然后解析这些词典以选择特定信息。 在这里,我们将通过访问嵌套对象来提取 BPI 值。字典键引用某些属性和属性,其值引用不同的数据类型。...我们将使用键来提取单个和多个值。...其他见解 我们还可以通过将“JSON 对象”转储到元素中,然后在 “.loads()” 方法的帮助下将其加载到字符串中,将 JSON 数据转换为字符串而不是字典。
{}, **extra) Element 对象的属性 tag: 标签 text: 去除标签,获得标签中的内容。...attrib: 获取标签中的属性和属性值。 tail: 这个属性可以用来保存与元素相关联的附加数据。它的值通常是字符串,但可能是特定于应用程序的对象。...Element 对象的方法 clear():清除所有子元素和所有属性,并将文本和尾部属性设置为None。...getchildren():Python3.2后使用 list(elem) 或 iteration....迭代器遍历这个元素和它下面的所有元素(深度优先级)。如果标签不是None或’*’,那么只有标签等于标签的元素才会从迭代器返回。如果在迭代过程中修改树结构,则结果是未定义的。
tag, attrib={}, **extra) Element 对象的属性 tag: 标签 text: 去除标签,获得标签中的内容。...attrib: 获取标签中的属性和属性值。 tail: 这个属性可以用来保存与元素相关联的附加数据。它的值通常是字符串,但可能是特定于应用程序的对象。...Element 对象的方法 clear():清除所有子元素和所有属性,并将文本和尾部属性设置为None。...getchildren():Python3.2后使用 list(elem) 或 iteration....迭代器遍历这个元素和它下面的所有元素(深度优先级)。如果标签不是None或’*’,那么只有标签等于标签的元素才会从迭代器返回。如果在迭代过程中修改树结构,则结果是未定义的。
注意:不同类型的数混合运算时会将整数转换为浮点数 ---- 1.2、String(字符串) Python中的字符串用单引号(')或双引号(")括起来,同时使用反斜杠(\)转义特殊字符。 ...字符串可以用+运算符连接在一起,用*运算符重复。 Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。 Python中的字符串不能改变。...It is {1}.'.format(q, a))时循环两个或更多的序列,可以使用 zip() 整体打包: Python的List功能已经足够完成队列的功能, 可以用 append() 来向队尾添加元素...这是字典 1.6、Dictionary(字典) 列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。 ...repr(x)将对象 x 转换为表达式字符串eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s)将序列 s 转换为一个元组list(s)将序列 s 转换为一个列表
字典被当作一个普通的可遍历结构使用时,都相当于遍历字典的键。...JSON # 因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输 # JSON不仅是标准格式,并且比XML更快,而且可以直接在Web页面中读取,非常方便。...'dict'> # 将Python中的对象(可以先看Python面向对象编程再来看)序列化成JSON对象 import json class Student(object): def __init...# 继承:把某一个或多个类(基类)的特征拿过来 # 重载:在子类(派生类)中多继承来的特征重新定义 # 单继承:父亲可以说话,小儿子继承了父亲,但是减弱了父亲的说话能力 # 父亲类(基类) class...Python 多线程 # 进程由一个或多个线程组成,在单核CPU中采用各个任务交替执行的方法达到任务并行处理的效果 # 多进程和多线程的程序涉及到同步、数据共享的问题,编写起来更复杂 # 廖雪峰老师这个章节讲解比较详细
,下载后,直接在命令行中运行即可: python on-my-tuna.py 安装IPython ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全...block块级元素,在对象前后都换行;inline在对象前后都不换行;list-item在对象前后都换行,增加了项目符号 Python必备知识点 基础数据类型 变量及其类型的含义 Python中的变量不需要声明...多个变量赋值 Python中,可以同时为多个变量赋值: aa = bb = cc = 11 这个例子的含义为,创建一个整型对象,值为11,从后向前赋值,3个变量都指向同一个内存地址。...List(列表) List可以说是Python中使用最频繁的数据类型。列表中的元素类型可以不相同,它支持数字,字符串甚至可以列表嵌套。...Dictionary(字典) Python中的字典另一种可变容器模型,可以存储任意类型对象。
block块级元素,在对象前后都换行;inline在对象前后都不换行;list-item在对象前后都换行,增加了项目符号 Python必备知识点 基础数据类型 变量及其类型的含义 Python中的变量不需要声明...多个变量赋值 Python中,可以同时为多个变量赋值: aa = bb = cc = 11 这个例子的含义为,创建一个整型对象,值为11,从后向前赋值,3个变量都指向同一个内存地址。...List(列表) List可以说是Python中使用最频繁的数据类型。列表中的元素类型可以不相同,它支持数字,字符串甚至可以列表嵌套。...Dictionary(字典) Python中的字典另一种可变容器模型,可以存储任意类型对象。...json模块的两个常用函数为: 函数名 含义 json.dumps 将Python对象编码成JSON字符串 json.loads 将已编码的JSON字符串解码为Python对象 json.dumps
update() 使用指定的键值对字典进行更新 values() 返回字典中所有值的列表 列表/数组的方法 方法 描述 append() 在列表的末尾添加一个元素 clear() 删除列表中的所有元素...extend() 将列表元素(或任何可迭代的元素)添加到当前列表的末尾 index() 返回具有指定值的第一个元素的索引 insert() 在指定位置添加元素 pop() 删除指定位置的元素 remove...(x) # 结果是 Python 字典: print(y["age"]) 对象转字符串 import json # Python 对象(字典): x = { "name": "Bill",...JSON 时,Python 对象会被转换为 JSON(JavaScript)等效项: Python JSON dict Object list Array tuple Array str String...search 如果字符串中的任意位置存在匹配,则返回 Match 对象 split 返回在每次匹配时拆分字符串的列表 sub 用字符串替换一个或多个匹配项 元字符 元字符是具有特殊含义的字符: 字符
; Json 中的基本元素是 字符串、数字、布尔值 或 null , Json 对象中的键值对 , 可以是上述类型元素 ; Json 数组中的元素 , 可以是上述类型元素 ; 2、Json 功能 Json...对象格式 : Json 对象是在 大括号 中的键值对 , 键 和 值 之间 使用冒号隔开 , 每个 键值对 之间 使用 逗号隔开 ; { "name": "John", "age":...30, "city": "New York" } Json 数组格式 : Json 数组 在 中括号 中存储 , 每个数组元素之间使用逗号隔开 ; [ "apple", "banana...", "orange" ] Json 对象对应着 Python 中的字典 , Json 数组对应着 Python 中的列表 , 上述对应可无缝衔接转换 ; 4、Json 格式 - 对象 /...数组 嵌套格式 Json 对象中的 键 和 值 可以是 对象 或 数组 ; Json 数组中的元素 , 可以是 对象 或 数组 ; 下面的 Json 数据 是一个 Json 对象 , “hobbies”
1访问列表元素 列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉Python即可。 索引从0 而不是1 开始。 将索引指定为-1,可让Python返回最后一个列表元素。...事实上,可将任何Python对象用作字典中的值。 键—值对是两个相关联的值。 指定键时,Python将返回与之相关联的值。 键和值之间用冒号分隔,而键—值对之间用逗号分隔。...7使用多个文件 8失败时一声不吭:使用pass语句 (4)存储数据 一种简单的方式是使用模块json来存储数据。...模块json让你能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件中的数据。 还可以使用json在Python程序之间分享数据。...函数json.dump()接受两个实参:要存储的数据以及可用于存储数据的文件对象。 先导入模块json,import json,numbers.json中数据的存储格式与Python中一样。
领取专属 10元无门槛券
手把手带您无忧上云