Hướng dẫn python decode bytes to list - python giải mã byte thành danh sách

Chuyển đổi chuỗi byte thành chuỗi unicode được thực hiện bằng cách gọi phương thức decode() trên đối tượng str (trong Python 2.x) hoặc bytes (Python 3.x).

Nếu bạn thực sự có một danh sách các byte, sau đó, để có được đối tượng này, bạn có thể sử dụng ''.join(bytelist) hoặc b''.join(bytelist).

Bạn cần chỉ định mã hóa được sử dụng để mã hóa chuỗi Unicode gốc.

Tuy nhiên, thuật ngữ "chuỗi python" hơi mơ hồ và cũng phụ thuộc vào phiên bản. Loại Python str là viết tắt của chuỗi byte trong Python 2.x và chuỗi Unicode trong Python 3.x. Vì vậy, trong Python 2, chỉ cần làm ''.join(bytelist) sẽ cung cấp cho bạn một đối tượng str.

Bản demo cho Python 2:

In [1]: 'тест'
Out[1]: '\xd1\x82\xd0\xb5\xd1\x81\xd1\x82'

In [2]: bytelist = ['\xd1', '\x82', '\xd0', '\xb5', '\xd1', '\x81', '\xd1', '\x82']

In [3]: ''.join(bytelist).decode('utf-8')
Out[3]: u'\u0442\u0435\u0441\u0442'

In [4]: print ''.join(bytelist).decode('utf-8') # encodes to the terminal encoding
тест

In [5]: ''.join(bytelist) == 'тест'
Out[5]: True

Đưa ra một chuỗi byte. Nhiệm vụ là viết một chương trình Python để chuyển đổi byte chuỗi này thành danh sách các số nguyên. & NBSP;

Phương pháp 1: Bằng cách sử dụng hàm list ()By using list() function

Hàm Danh sách () được sử dụng để tạo một danh sách từ số khác được chỉ định được thực hiện dưới dạng tham số của nó. list() function is used to create a list from the specified iterable taken as its parameter.

Syntax:

list([iterable])

Tham số: Hàm này chấp nhận một tham số duy nhất được minh họa bên dưới:This function accepts a single parameter that is illustrated below:

  • Có thể lặp lại: Đây là chuỗi được chỉ định sẽ được tạo như một danh sách khác.This is the specified sequence that is going to be created as another list.

Giá trị trả về: Hàm này trả về một danh sách mới được tạo ra từ số đó đã được thông qua dưới dạng đối số của nó. This function returns a new list created out of the given iterable passed as its arguments.

Ví dụ: Chương trình Python cho chuỗi byte vào danh sách các số nguyênPython program to a byte string to a list of integers

Python3

Output:

[71, 70, 71]

Phương pháp 2: Bằng cách sử dụng cho chức năng Loop và Ord ()By using for loop and ord() function

Hàm ord () được sử dụng để trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.ord() function is used to return the number representing the Unicode code of a specified byte character.

Syntax:

ord(character)

Tham số: Hàm này chấp nhận một tham số duy nhất được minh họa dưới đây:This function accepts a single parameter which is illustrated below:

  • ký tự: Đây là chuỗi byte được chỉ định. This is the specified byte string.

Giá trị trả về: Hàm này trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.This function returns the number representing the Unicode code of a specified byte character.

Ví dụ: Chương trình Python cho chuỗi byte vào danh sách các số nguyênPython program to a byte string to a list of integers

Python3

Phương pháp 2: Bằng cách sử dụng cho chức năng Loop và Ord ()

Hàm ord () được sử dụng để trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.

Tham số: Hàm này chấp nhận một tham số duy nhất được minh họa dưới đây:

1
2
1
3
1
4
1
5
[71, 70, 71]
9
1
7

ký tự: Đây là chuỗi byte được chỉ định.

Output:

Giá trị trả về: Hàm này trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.

[71, 70, 71]2[71, 70, 71]3 [71, 70, 71]4 By using from_bytes() function

[71, 70, 71]
5
[71, 70, 71]
3
[71, 70, 71]
7from_bytes() function is used to convert the specified byte string into its corresponding int values.

Syntax:

[71, 70, 71]
8
[71, 70, 71]
9
1
0
1
1

1
8
1
9
This function accepts some parameters which are illustrated below:

  • [71, 70, 71, 32, 105, 115, 32, 97, 32, 67, 83, 32, 80, 111, 114, 116, 97, 108]A byte object
  • Phương pháp 3: Bằng cách sử dụng hàm from_bytes ()This parameter determines the order of representation of the integer value. byteorder can have values as either “little” where most significant bit is stored at the end and least at the beginning, or big, where MSB is stored at start and LSB at the end. Big byte order calculates the value of an integer in base 256.
  • Hàm from_Bytes () được sử dụng để chuyển đổi chuỗi byte được chỉ định thành các giá trị int tương ứng của nó. Its default value is False. This parameter Indicates whether to represent 2’s complement of a number.

int.from_bytes (byte, byteorder, *, đã ký = false) This function returns an int equivalent to the given byte.

Ví dụ: Chương trình Python cho chuỗi byte vào danh sách các số nguyênPython program to a byte string to a list of integers

Python3

Phương pháp 2: Bằng cách sử dụng cho chức năng Loop và Ord ()

Hàm ord () được sử dụng để trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.

1
8decode()1

Output:

1

Tham số: Hàm này chấp nhận một tham số duy nhất được minh họa dưới đây:Python program to a byte string to a list of integers

Python3

ký tự: Đây là chuỗi byte được chỉ định.

Giá trị trả về: Hàm này trả về số đại diện cho mã unicode của một ký tự byte được chỉ định.

1
8decode()1

Output:

-1024

[71, 70, 71]
2
[71, 70, 71]
3
[71, 70, 71]
4

[71, 70, 71]
5
[71, 70, 71]
3
[71, 70, 71]
7
O(n)

[71, 70, 71]
8
[71, 70, 71]
9
1
0
1
1
O(n)