ImbaPlayer
ImbaPlayer

Reputation: 23

How to extract a bytes data from a string in python?

str1 = "b""T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf"""
b1 = b'T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf'

how to transfer str1 which is <class 'str'> to b1 which is <class 'bytes'>?

Upvotes: 1

Views: 443

Answers (2)

Arsal
Arsal

Reputation: 447

Here's a simple way:

str1 = "b""T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf"""
    
b1 = bytes(str1.split("b")[1], 'raw_unicode_escape')

print (b1)

Output:

b"T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00\x00\x00\x00\x00\x16So\xe7\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf"

Upvotes: 2

leaf_soba
leaf_soba

Reputation: 2518

if you have a correct format str1, you can try to use eval

code:

str1 = r'b"T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9\'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf"'
x = eval(str1)
print(x)
print(type(x))

result:

b"T\xefD\xcdB\x95\x90v\x9f\x88^\xa3\x08\x00E\x00\x00|\xd7u@\x00.\x11\x80\xcf\x0e\xd7#\x07\xc0\xa8\x01\xa6\x1fu\xb2d\x00h}\x0e!1\x00`\x00\x00\x00\x00\x16So\xe7`\x00|\xd0j\xcc\xbc\xf5<j\x807\x98\xb1t\xddMMrH\xf1\xffy\xbd]\x88\xb1\x9f\xe04r\xaaD\xc8\xd5\x9cc\xe1\xc9'\x0e\x1dsY)4\xaeq\xf9\xe9\x8e\xc7c\xd9O\xa5I\x86\xd6p\xa5.a){\xbc\x16\xe4\xf9\x86\x15\x7f\xddw!\xa8U#I\xf5FV.\xe0k\xcf" 
<class 'bytes'>

Upvotes: 1

Related Questions