使用 python 获取部分响应正文
Get part of the response body using python
我从服务器收到响应:
B�
QeyJhbGciOiJIUzI1NiJ9.Mzc1Mjk4MjUzNjA1.PFblnWR46sByMIZX2fmot9SB8CNYDwHyDOduIf29Gn8059f6f-sdfs-2df2-lj2k-ce310d7e3e8c"5ecf7534b4ccd20100d29378*�所
在我对响应使用编码后:
response = r.text.encode('utf8')
我的响应变量中有这个:
b'B\xe2\x80\xba\x01\nQeyJhbGciOiJIUzI1NiJ9.Mzc1Mjk4MjUzNjA1.GKjZw55OvoNpH4vOw0jMSQoCYQ3mIn4b0Hq7Ye5S3wA\x12059f6f-sdfs-2df2-lj2k-ce310d7e3e8c"\x185ecf7534b4ccd20100d29378*\x06\x08\xc3\x80\xc2\xa4\xc3\x93\xe2\x82\xac\x01'
我正在努力获取这部分 04059f6f-sdfs-2df2-lj2k-ce310d7e3e8c 使用不同的方式
result = re.search('\x12$(.*)\x18', response)
print(result)
结果 = None.
我想要实现的是将 04059f6f-sdfs-2df2-lj2k-ce310d7e3e8c 作为文本获取。
有什么想法或建议吗?
编辑:我已经从响应中删除了“**”字符,因为它试图将必要的部分加粗。
如果您有字节数据,那么您应该使用搜索字节
但主要问题是 $
在正则表达式中有特殊含义 - 行尾 - 你必须使用 $
import re
data = b'B\xe2\x80\xba\x01\nQeyJhbGciOiJIUzI1NiJ9.Mzc1Mjk4MjUzNjA1.GKjZw55OvoNpH4vOw0jMSQoCYQ3mIn4b0Hq7Ye5S3wA\x12059f6f-sdfs-2df2-lj2k-ce310d7e3e8c"\x185ecf7534b4ccd20100d29378*\x06\x08\xc3\x80\xc2\xa4\xc3\x93\xe2\x82\xac\x01'
result = re.search(b'$(.*)"', data)
print(result[1].decode())
转义 $
字符并将字符分组以避免调用 split
:
re.search('(\x12$)(.*)(\x18)', response.decode('utf-8'))[2]
Out[38]: '04059f6f-sdfs-2df2-lj2k-ce310d7e3e8c"'
我从服务器收到响应:
B�
QeyJhbGciOiJIUzI1NiJ9.Mzc1Mjk4MjUzNjA1.PFblnWR46sByMIZX2fmot9SB8CNYDwHyDOduIf29Gn8059f6f-sdfs-2df2-lj2k-ce310d7e3e8c"5ecf7534b4ccd20100d29378*�所
在我对响应使用编码后:
response = r.text.encode('utf8')
我的响应变量中有这个:
b'B\xe2\x80\xba\x01\nQeyJhbGciOiJIUzI1NiJ9.Mzc1Mjk4MjUzNjA1.GKjZw55OvoNpH4vOw0jMSQoCYQ3mIn4b0Hq7Ye5S3wA\x12059f6f-sdfs-2df2-lj2k-ce310d7e3e8c"\x185ecf7534b4ccd20100d29378*\x06\x08\xc3\x80\xc2\xa4\xc3\x93\xe2\x82\xac\x01'
我正在努力获取这部分 04059f6f-sdfs-2df2-lj2k-ce310d7e3e8c 使用不同的方式
result = re.search('\x12$(.*)\x18', response)
print(result)
结果 = None.
我想要实现的是将 04059f6f-sdfs-2df2-lj2k-ce310d7e3e8c 作为文本获取。
有什么想法或建议吗?
编辑:我已经从响应中删除了“**”字符,因为它试图将必要的部分加粗。
如果您有字节数据,那么您应该使用搜索字节
但主要问题是 $
在正则表达式中有特殊含义 - 行尾 - 你必须使用 $
import re
data = b'B\xe2\x80\xba\x01\nQeyJhbGciOiJIUzI1NiJ9.Mzc1Mjk4MjUzNjA1.GKjZw55OvoNpH4vOw0jMSQoCYQ3mIn4b0Hq7Ye5S3wA\x12059f6f-sdfs-2df2-lj2k-ce310d7e3e8c"\x185ecf7534b4ccd20100d29378*\x06\x08\xc3\x80\xc2\xa4\xc3\x93\xe2\x82\xac\x01'
result = re.search(b'$(.*)"', data)
print(result[1].decode())
转义 $
字符并将字符分组以避免调用 split
:
re.search('(\x12$)(.*)(\x18)', response.decode('utf-8'))[2]
Out[38]: '04059f6f-sdfs-2df2-lj2k-ce310d7e3e8c"'