python中json.dumps和json.loads,get和post

枫铃3年前 (2021-07-23)Python279

一、json.dumps()和json.loads()概念理解

1、json.dumps()和json.loads()是json格式处理函数(可以这么理解,json是字符串)

  • json.dumps()函数是将一个Python数据类型列表进行json格式的编码(可以这么理解,json.dumps()函数是将字典转化为字符串)
  • json.loads()函数是将json格式数据转换为字典(可以这么理解,json.loads()函数是将字符串转化为字典)

2、json.dump()和json.load()主要用来读写json文件函数

二、get和post

我们都见识过requests库在静态网页的爬取上展现的威力,我们日常见得最多的为get和post请求,他们最大的区别在于安全性上:

区别:

1、传送方式:get通过地址栏传输,post通过报文传输。

2、传送长度:get参数有长度限制(受限于url长度),而post无限制

3、GET和POST还有一个重大区别,简单的说:GET产生一个TCP数据包;POST产生两个TCP数据包

长的说:

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

4、

  • get是从服务器获取数据,包括静态资源(HTML|JS|CSS|Image等等)、动态数据展示(列表数据、详情数据等等)
  • post是向服务器提交数据,比如增删改数据,提交一个表单,新建一个人用户或修改一个用户

对于Post请求,我们可以通过浏览器开发者工具或者其他外部工具来进行抓包,得到请求的URL、请求头(request headers)以及请求的表单data信息,这三样恰恰是我们用requests模拟post请求时需要的,典型的写法如下:
response=requests.post(url=url,headers=headers,data=data_search)

由于post请求很多时候是配合Ajax(异步加载)技术一起使用的,我们抓包时,可以直接选择XHR(XmlHttpRequest)-ajax的一种对象,帮助我们滤掉其他的一些html、css、js类文件,如下图所示:
在这里插入图片描述
双击点开,就可以在页面右边的Headers页下看到General、Response Headers、Request Headers、Form Data几个模块

剩下的工作就很简单,交给强大的Requests包完成就好,示例代码如下:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def get_page(data_search,url): #定义页面解析的函数,返回值为json格式
    try:
        response=requests.post(url=url,headers=headers,data=data_search)
        if response.status_code==200:
            return response.json()
    except requests.ConnectionError as e:
        print('Error',e.args)

最后的小结:

  • 做测试的时候我们看清是get还是post请求,不要犯低级错误
  • 注意传入的参数是否正常,缺失

相关文章

如何保护你写的 Python 代码?

去年11月在PyCon China 2018 杭州站分享了 Python 源码加密,讲述了如何通过修改 Python 解释器达到加解密 Pyth...

Python find() 方法

Python find() 方法从字符串中找出某个子字符串第一个匹配项的索引位置,该方法与 index() 方法一样,只不过如果子...

Python3NumPy的常用函数

Python3NumPy的常用函数

1. txt文件 (1) 单位矩阵,即主对角线上的元素均为1,其余元素均为0的正方形矩阵。 在NumPy中可以用eye函数创建一...

Python 操作字典 的几个技巧

Python 中的字典是Python中一个键值映射的数据结构,下面介绍一下如何优雅的操作字典. 1 创建字典 Python有两种方法可以创建字典,第一种是...

使用 Python 在 Linux 上实现一键回归测试

从代码库迁出代码 —- pexpect 的使用 测试人员从代码库(例如 CVS )迁出代码的过程中,需要手动输入访问...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。