当前位置: 首页 > news >正文

Python中使用Re模块TypeError: cannot use a string pattern on a bytes-like object 解决办法

错误收集

C:\Users\Administrator\PycharmProjects\PythonProject2\.venv\Scripts\python.exe C:\Users\Administrator\PycharmProjects\PythonProject2\cookie_test.py 
{'success': True, 'state': 1, 'message': '响应成功', 'content': {'access_token': 'bf5a680c-9895-4d55-b49b-34f51b0268e3', 'user_id': 100030011, 'user': {'id': 100030011, 'name': '15321919666', 'portrait': 'https://edu-lagou.oss-cn-beijing.aliyuncs.com/images/2020/06/28/15933251448762927.png', 'phone': '15321919666', 'password': '123456', 'reg_ip': None, 'account_non_expired': None, 'credentials_non_expired': None, 'account_non_locked': None, 'status': 'DISABLE', 'is_del': None, 'createTime': 1594347555000, 'updateTime': 1594347555000}}}
登录接口中的cookie:  <RequestsCookieJar[<Cookie JSESSIONID=A3FFBD48812FEEF81B0801430340E636 for www.edu2.com/ssm_web/>, <Cookie JSESSIONID="" for .edu2.com/>]>
json数据转化为字符串 {"success": true, "state": 1, "message": "\u54cd\u5e94\u6210\u529f", "content": {"access_token": "bf5a680c-9895-4d55-b49b-34f51b0268e3", "user_id": 100030011, "user": {"id": 100030011, "name": "15321919666", "portrait": "https://edu-lagou.oss-cn-beijing.aliyuncs.com/images/2020/06/28/15933251448762927.png", "phone": "15321919666", "password": "123456", "reg_ip": null, "account_non_expired": null, "credentials_non_expired": null, "account_non_locked": null, "status": "DISABLE", "is_del": null, "createTime": 1594347555000, "updateTime": 1594347555000}}}
bf5a680c-9895-4d55-b49b-34f51b0268e3
Traceback (most recent call last):
File "C:\Users\Administrator\PycharmProjects\PythonProject2\cookie_test.py", line 45, in <module>
re.findall(pattern="'access_token': '(.*?)'",string=result_data_info.content)
File "D:\Program\Util\py\Lib\re\__init__.py", line 217, in findall
return _compile(pattern, flags).findall(string)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: cannot use a string pattern on a bytes-like object

错误分析

TypeError: cannot use a string pattern on a bytes-like object   

由上面红色的字体可以看出,使用python中的re模块匹配正则表达式的时候,填入的参数是一个对象,而不是一个字符串。正则表达式匹配需要字符串。

错误解决

使用str()函数将对象转化为字符串类型的

修改代码

# 使用正则表达式提取token
re_token = re.findall(pattern=r"'access_token': '(.*?)'",string=str(result_data_info.json()))

运行结果

对比:

re_token

json_token

数据已经成功提取。并且报错已经成功解决。传递参数的时候应该传递字符串类型,实现传递为对象类型。

http://www.lryc.cn/news/588438.html

相关文章:

  • Leaflet面试题及答案(81-100)
  • 九、官方人格提示词汇总(中-1)
  • 项目进度图不直观,如何优化展示方式
  • Go泛型完全指南:从基础到实战应用
  • 进程---基础知识+命令+函数(fork+getpid+exit+wait+exec)
  • iOS —— 网易云仿写
  • 短剧看广告APP源码独立部署与二次开发指南(支持二开)
  • 前端vue对接海康摄像头流程
  • Java学习 -------进程、线程、协程
  • 无人机抗风性模块概述!
  • 修改主机名颜色脚本
  • Pytest Fixtures 详解:轻松掌握测试逻辑复用与资源管理
  • 如何删除D盘合并C盘
  • 搭建k8s高可用集群,“Unable to register node with API server“
  • JAVA并发——volatile关键字的作用是什么
  • 【EM算法】算法及注解
  • aspnetcore Mvc配置选项中的ModelBindingMessageProvider
  • 群晖Nas - Docker(ContainerManager)上安装SVN Server和库权限设置问题
  • k8s-高级调度(二)
  • SVN客户端(TortoiseSVN)和SVN-VS2022插件(visualsvn)官网下载
  • Kotlin Map映射转换
  • LeetCode 424.替换后的最长重复字符
  • vim扩展
  • 0-1搭建springboot+vue的教务管理系统(核心源码)
  • c++算法一
  • kali安装失败-选择并安装软件包-一步到位
  • 几种上传ipa到app store的工具
  • 深度解读virtio:Linux IO虚拟化核心机制
  • Redis7持久化
  • Gstreamer之”pad-added“事件