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

TypeError: expected string or bytes-like object

re.findall遍历匹配,可以获取字符串中所有匹配的字符串,返回一个列表。

在调用re.findall的时候出现下面的错误

TypeError: expected string or bytes-like object

因为传入的是一个json的格式,就需要先将json格式换为str格式

# *===================================*
# -*- coding: utf-8 -*-
# * Time : 2019/11/8 15:25
# * Author : zhangsf
# *===================================*
import requests
import urllib
import re
import json
import ssl
#关闭了verify之后,引入urllib3的disable_warnings
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
ssl._create_default_https_context = ssl._create_unverified_context
# post请求
login_url = "https://xxxxxxx.com/owa/sessiondata.ashx"
header = {
    'Cookie':'X-BackEndCookie=S-1-5-21-1713849901-2797640346-4150151575-1009910=u56Lnp2ejJqBzsubzJvLycbSy87Nz9LLmsbL0sfHmpzSzZ7NncebmpzGzMrMgYHNz87G0s7N0s7Pq8/Oxc/JxcrO; __jdu=1571023082727881273581; pinId=2Bnp1DylQwi5X78E99k3fw; pin=zhangvalue; unick=zhangvalue; _tp=cOR1hNRYc3ccyW4KIJwFQQ%3D%3D; _pst=zhangvalue; user-key=c52f8d0d-498d-4685-9f32-7dee107dc2d4; cn=16; shshshfpa=b77ba96a-37d4-9aed-2808-8f342d4876af-1571026704; ClientId=A84FA33F1BDC45AD95097F44E4AA1CB9; X-OWA-JS-PSD=1; areaId=1; RoutingKeyCookie=v2:%2fV1xBTCDLP7eJXStxne5F48i2Y5XrC1%2fglQ5zDPnTSQ%3d:d89b6794-bf46-480f-bcf3-4fe09974a4b1@jd.com; lang=zh-CN; umail.jd.com=cb43089295b786f1781d9fc614eb7aa670b0dfb5; amail.jd.com=zhangshengfan; AppcacheVer=15.1.1415.2:zh-cnbase; ASP.NET_SessionId=821972ca-bb86-4a2a-8943-dcc79bce08ca; TimeOffset=-480; unpl=V2_ZzNtbUdTQEZ2W05WexFZDGILRwhKXhMQc19DAHsRXw1mBEJYclRCFX0URlRnGFgUZwEZX0RcQRxFCEdkeB5fA2AFEFlBZxpFK0oYEDlNDEY1WnxZRldAFXEIQlF6KWwGZzMSXHJXRxN1CUVWehBfA2QFG1RCVEUXcQFGZEsebDVXBBtfRVZLJXQ4R2Q5TQAFZQoUXkEaQxFzCEdXeRhVBmEAFFRLV0ATdwxPVEsYbAY%3d; __jdv=76161171|haosou-search|t_262767352_haosousearch|cpc|5512151540_0_452b2b93194849dd98a47f4e192906a4|1572932258714; shshshfpb=hK9LDqjkpSdZgURqoxXh1BA%3D%3D; 3AB9D23F7A4B3C9B=JZTUZRJV76NL6RWD6IMD2ULQP7WOUEYQ6FF4TIGNXZ2H7USWHQM6CBLV6MHV44GBEQXLJXPDMUQINRMNQZLBHHFDWM; ipLoc-djd=1-2809-51216-0; wlfstk_smdl=kz74wvntcfts60d7dg32z629mxsadq9y; TrackID=1nDRau2MeyWhemIqFXhYVrMilvDeaW_L9GTWtInP3XkUb_pHlROI3gqDILHRvmKnGNWOChdplj7rribkHaGLfbJg5jqHxWzJJJgQFiXmsI1A; ceshi3.com=201; shshshfp=7ed8f0db0856eef442ab47b94359bfad; __jda=258904465.1571023082727881273581.1571023083.1572932259.1573182677.10; __jdc=258904465; jd.erp.lang=zh_CN; erp1.jd.com=B002BA76FDD9A6C6CCAEE83E88AD91ACD309CE4CB91249F7BC19E07D3A9842E0BB26291B0C458C38E4A54BA4C0C12B723D9B496C55A7E865098A3496498ABF99CA41DD4C8EEDEA140D13C484D049B6D590F8D68137E59E232816054395E95D20; sso.jd.com=BJ.4beba401a69742b1b6153d7a7c692f57; ValiCode=HCCQSEDFYZ21; cadata=TgB7v5cZMyemSlAYXbW2kVDbWFpDtIuChIIhxISJbbVwkuIUHiDMzD7JLIJR8URvFGSgRt0+WOI1NNceW4ZDr3T8QR8dxnlJMRZA9HfbLFu20GC6vOQcHhbqjYz8+eIZ; cadataTTL=Mr0CmZoMW3A1zmnLQa5w1Q==; cadataKey=Rx3qLfNGK8YBYArw34sZ5Ij6oWnF5FST+W9T42+S2o3u/WSmxloAUxXO0Pzj95+hlVs9FcMVmb3U3N/rJi6AejmajntwElElOIyvHqOQeZHfM9VPF1o9tJh9n8JF12kVHA3bKk/knVE79gS0UeOGgCmo82F5kNuHIye9MApTnNf2NP13vZKTC/ChejG7Zb+xr0l372eTS8MdPUsX5hZI2dGWSFpA9JHUgyMtx/OBPSno515iDDNMtpt3ou8hGRyeKjGQu0c85zKXk5XFby8Y0lOs2mcMenhkHT80KBo2GyxdtNNeWODF/4DsJZ0FzwfgiWZ1GhentpFYspiYrAn1EA==; cadataIV=Mb/WGrc4FumyxAWXiUl7UdE/XtW+lR5waegzFbiUpH8jDQPrO3BWmmmG6mbAZBm9qKhYcNkaUVXlTlweAdFBl3Lbn8OSq3V9g84rEyDyHZy4LkiNnWiuSjEaa1+ZH5sDKJXK10fPGCqJvz30FdM8T+LnW4MgYYuMloO3aJbXSHoPJQJrKyuVASlSstbEyZwj6XRysxLs6/7HOQM/KBGcl8a43XbMarjHPEDoDopfmoPBPkXkDnEjHSlzOqU78R4Hx3AcePloIC8csuBYSPmuZ05kBza37Nr4EOwlBFeOYPn+ptAEdf4jq4hIigKwzIA5I9kybYkKmC/GyKxPus9Uow==; cadataSig=EZYiLFk+gD2+KPrLxIafzRyi6TPfWnfE9PJj+ecsWaEnzjFrE+v4c/uXpYyJ6Sn1Kgw0QBVsMmopYhnuzZMB7nbv5niBR0niyKjQz4HoNd/ps1Y7ylKEtVh6H7wmYdmSzWiymyGsxpYpVignqdPHvZuJSUILNy/1e7spy54F2l1FK5hqBYErV07R+TfRTEXXd6Ai9/jH0HkVyk0mXeP8ldFIcXeVq67Ml+5d9EW5Jin4Jj9OgGUTnwS3oAHSx3VVi0Qa6x7UVsLrFwMoWDd6if1+I/x20hWvxNJqTL8GeIuqeVEPeSg9H7VjNoRTvgeAINdGy8Id5swOKCnsZnM4dg=='
    ,'X-OWA-UrlPostData':'%7B%22__type%22%3A%22FindItemJsonRequest%3A%23Exchange%22%2C%22Header%22%3A%7B%22__type%22%3A%22JsonRequestHeaders%3A%23Exchange%22%2C%22RequestServerVersion%22%3A%22Exchange2016%22%2C%22TimeZoneContext%22%3A%7B%22__type%22%3A%22TimeZoneContext%3A%23Exchange%22%2C%22TimeZoneDefinition%22%3A%7B%22__type%22%3A%22TimeZoneDefinitionType%3A%23Exchange%22%2C%22Id%22%3A%22China%20Standard%20Time%22%7D%7D%7D%2C%22Body%22%3A%7B%22__type%22%3A%22FindItemRequest%3A%23Exchange%22%2C%22ItemShape%22%3A%7B%22__type%22%3A%22ItemResponseShape%3A%23Exchange%22%2C%22BaseShape%22%3A%22IdOnly%22%7D%2C%22ParentFolderIds%22%3A%5B%7B%22__type%22%3A%22DistinguishedFolderId%3A%23Exchange%22%2C%22Id%22%3A%22inbox%22%7D%5D%2C%22Traversal%22%3A%22Shallow%22%2C%22Paging%22%3A%7B%22__type%22%3A%22SeekToConditionPageView%3A%23Exchange%22%2C%22BasePoint%22%3A%22Beginning%22%2C%22Condition%22%3A%7B%22__type%22%3A%22RestrictionType%3A%23Exchange%22%2C%22Item%22%3A%7B%22__type%22%3A%22IsEqualTo%3A%23Exchange%22%2C%22Item%22%3A%7B%22__type%22%3A%22PropertyUri%3A%23Exchange%22%2C%22FieldURI%22%3A%22InstanceKey%22%7D%2C%22FieldURIOrConstant%22%3A%7B%22__type%22%3A%22FieldURIOrConstantType%3A%23Exchange%22%2C%22Item%22%3A%7B%22__type%22%3A%22Constant%3A%23Exchange%22%2C%22Value%22%3A%22AQAAAAAAAQwBAAAAB6mSYAAAAAA%3D%22%7D%7D%7D%7D%2C%22MaxEntriesReturned%22%3A311%7D%2C%22ViewFilter%22%3A%22All%22%2C%22IsWarmUpSearch%22%3Afalse%2C%22FocusedViewFilter%22%3A-1%2C%22Grouping%22%3Anull%2C%22ShapeName%22%3A%22MailListItem%22%2C%22SortOrder%22%3A%5B%7B%22__type%22%3A%22SortResults%3A%23Exchange%22%2C%22Order%22%3A%22Descending%22%2C%22Path%22%3A%7B%22__type%22%3A%22PropertyUri%3A%23Exchange%22%2C%22FieldURI%22%3A%22ReceivedOrRenewTime%22%7D%7D%2C%7B%22__type%22%3A%22SortResults%3A%23Exchange%22%2C%22Order%22%3A%22Descending%22%2C%22Path%22%3A%7B%22__type%22%3A%22PropertyUri%3A%23Exchange%22%2C%22FieldURI%22%3A%22DateTimeReceived%22%7D%7D%5D%7D%7D'
}# requests中的post中传入的data可以不进行重编码
# login_postdata = urllib.parse.urlencode(postdata).encode('utf8')
response = requests.post(url=login_url, headers=header,verify=False)  # <class 'requests.models.Response'>
# 以下三种都可以解析结果
json1 = response.json()  # <class 'dict'>
json2 = json.loads(response.text)  # <class 'dict'>
json_str = response.content.decode('utf-8')  # <class 'str'>
# print(json1)
pattern="(?<='Subject': ').*?(?=',)"
#匹配到所有的主题
#findall需要传入的格式为str格式,需要str()
all_subject=re.findall(pattern, str(json2))
for subject in all_subject:
    print(subject)
# print(json2)
# print(json_str)
def text_save(filename, data):#filename为写入CSV文件的路径,data为要写入数据列表.
    file = open(filename,'a')
    for i in range(len(data)):
        # s = str(data[i]).replace('[','').replace(']','')#去除[],这两行按数据不同,可以选择
        # s = s.replace("'",'').replace(',','') +'\n'   #去除单引号,逗号,每行末尾追加换行符
        file.write(str(data[i])+'\n')
    file.close()
    print("保存文件成功")
text_save('output.txt',out_subjec)

 

相关文章:

  • Python数据规则录入Excel
  • TypeError: unhashable type: 'list'
  • Python3的字典操作-value合并
  • Python3按post方式爬取邮箱并按规则放入Excel
  • Idea中进行pull的时候Your local changes would be overwritten by merge.
  • Python3获取list下标及其值
  • 学习方法-费曼学习法
  • Python操作list列表合并
  • Python3统计代码行小工具
  • GitHub中的README.md编写
  • 使用CSDN的Markdown
  • Java爬取指定知乎问题图片
  • 爬虫是否违法
  • Mac安装VScode运行C语言
  • 基于AP的课堂辅助教学系统Web端
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 230. Kth Smallest Element in a BST
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Linux下的乱码问题
  • Mac转Windows的拯救指南
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • spring boot 整合mybatis 无法输出sql的问题
  • 关于for循环的简单归纳
  • 爬虫模拟登陆 SegmentFault
  • 判断客户端类型,Android,iOS,PC
  • 强力优化Rancher k8s中国区的使用体验
  • 通过npm或yarn自动生成vue组件
  • 突破自己的技术思维
  • 微信小程序:实现悬浮返回和分享按钮
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • ​ubuntu下安装kvm虚拟机
  • ​渐进式Web应用PWA的未来
  • !$boo在php中什么意思,php前戏
  • #Java第九次作业--输入输出流和文件操作
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (转)关于多人操作数据的处理策略
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转)四层和七层负载均衡的区别
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .gitattributes 文件
  • .htaccess 强制https 单独排除某个目录
  • .Net Core与存储过程(一)
  • .NET Framework与.NET Framework SDK有什么不同?
  • .Net IE10 _doPostBack 未定义
  • .net 按比例显示图片的缩略图
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • .NET性能优化(文摘)
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @Autowired和@Resource的区别
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解
  • @test注解_Spring 自定义注解你了解过吗?
  • @Transaction注解失效的几种场景(附有示例代码)