Làm cách nào để chuyển đổi dữ liệu byte thành chuỗi trong Python?

Python hỗ trợ các loại đối tượng chuỗi khác nhau để lưu trữ dữ liệu. Một đối tượng như vậy là một đối tượng bytearray. Như tên gợi ý, một đối tượng bytearray là một mảng byte hoặc một chuỗi byte. Trong bài viết này, chúng ta sẽ thảo luận về các cách khác nhau để chuyển đổi bytearray thành chuỗi trong Python

Làm cách nào để tạo một mảng phụ từ một chuỗi?

Trước khi chuyển đổi một mảng phụ thành một chuỗi, trước tiên chúng ta hãy thảo luận về cách chúng ta có thể chuyển đổi một chuỗi thành một mảng phụ. Sau khi tạo một đối tượng bytearray từ một chuỗi, chúng ta sẽ tìm hiểu cách chuyển đổi một bytearray thành một chuỗi trong các phần tiếp theo

Để chuyển đổi một chuỗi thành một mảng phụ, chúng tôi sử dụng hàm tạo bytearray[]. Cú pháp của hàm tạo bytearray[] như sau

byteArrayObject=bytearray[input_string, encoding_format, error_message]

Đây,

  • byteArrayObject là đầu ra được đưa ra bởi hàm tạo bytearray[]
  • input_string là chuỗi phải được chuyển đổi thành một mảng phụ
  • 'encoding_format' là định dạng mã hóa mà chúng tôi tuân theo khi chuyển đổi một chuỗi thành mảng phụ. Nói chung, đó là 'utf-8' hoặc 'utf-16'
  • error_message  là thông báo được hiển thị khi có bất kỳ lỗi nào xảy ra trong quá trình thực thi hàm tạo bytearray[]. Nó là một đối số tùy chọn

Để chuyển đổi một chuỗi thành một đối tượng bytearray, chúng ta có thể chuyển chuỗi đầu vào và định dạng mã hóa cho hàm tạo bytearray như sau

1

2

3

4

5

6

 

myString = "Java2Blog"

byteArrayObject = bytearray[myString, 'utf-8']

print["Chuỗi đầu vào là. ", myString]

in["Đối tượng mảng phụ là. ", byteArrayObject]

 

đầu ra

1

2

3

4

 

Chuỗi đầu vào string . Java2Blog

Đối tượng dãy byte object . bytearray[b'Java2Blog']

 

Như bạn có thể quan sát, chúng tôi đã tạo một đối tượng bytearray từ một chuỗi. Bây giờ chúng ta sẽ thảo luận về các cách khác nhau để chuyển đổi một mảng thành chuỗi trong python

Sử dụng Hàm str[] để chuyển đổi Bytearray thành Chuỗi trong Python

Chúng ta có thể chuyển đổi một mảng phụ thành một chuỗi bằng cách sử dụng hàm bytearray[]1. Nói chung, chúng tôi sử dụng hàm bytearray[]1 để chuyển đổi một số nguyên, số dấu phẩy động hoặc giá trị khác thành chuỗi như sau

1

2

3

4

 

myFloat = 123. 4567

myString = str[myFloat]

 

Ở đây, chúng tôi không cần chỉ định định dạng mã hóa. Tuy nhiên, nếu chúng ta muốn chuyển đổi một mảng phụ thành chuỗi bằng cách sử dụng hàm bytearray[]1, chúng ta cũng cần chỉ định định dạng mã hóa làm đối số thứ hai như được hiển thị bên dưới

1

2

3

4

5

6

7

8

 

myString = "Java2Blog"

byteArrayObject = bytearray[myString, 'utf-8']

print["Chuỗi đầu vào là. ", myString]

in["Đối tượng mảng phụ là. ", byteArrayObject]

output_string = str[byteArrayObject, 'utf-8']

print["Chuỗi đầu ra là. ", chuỗi đầu ra]

 

đầu ra

1

2

3

4

5

 

Chuỗi đầu vào string . Java2Blog

Đối tượng dãy byte object . bytearray[b'Java2Blog']

Đầu ra chuỗi . Java2Blog

 

Ở đây, định dạng mã hóa phải giống với định dạng được sử dụng khi tạo đối tượng bytearray. Nếu chúng ta chỉ định bất kỳ định dạng mã hóa nào khác trong hàm bytearray[]1, nó sẽ cho kết quả không mong muốn. Chương trình cũng có thể gặp lỗi. Bạn có thể quan sát điều này trong ví dụ sau

1

2

3

4

5

6

7

8

9

 

myString = "Java2Blog"

byteArrayObject = bytearray[myString, 'utf-8']

print["Chuỗi đầu vào là. ", myString]

in["Đối tượng mảng phụ là. ", byteArrayObject]

output_string = str[byteArrayObject, 'utf-16']

print["Chuỗi đầu ra là. ", chuỗi đầu ra]

 

 

đầu ra

1

2

3

4

5

6

7

8

 

Chuỗi đầu vào string . Java2Blog

Đối tượng dãy byte object . bytearray[b'Java2Blog']

Truy nguyên [hầu hết cuộc gọi gần đây last]:

  Tệp "/home/aditya1117/PycharmProjects/pythonProject/webscraping. py", dòng 5, in

    output_string = str[byteArrayObject, 'utf-16']

Lỗi UnicodeDecode. 'utf-16-le' codec có thể ' t decode byte 0x67 in position 8: dữ liệu bị cắt bớt

 

Ở đây, bạn có thể thấy rằng phương thức bytearray[]1 không thể chuyển đổi đối tượng mảng phụ thành chuỗi vì chúng ta không chuyển định dạng mã hóa giống như định dạng được sử dụng khi tạo đối tượng mảng phụ

Sử dụng hàm decode[] để chuyển Bytearray thành String trong Python

Một cách khác để chuyển đổi một mảng phụ thành chuỗi là sử dụng phương thức bytearray[]6. Phương thức bytearray[]6, khi được gọi trên một đối tượng bytearray, sẽ lấy định dạng mã hóa làm đầu vào và trả về chuỗi đầu ra.  

Bạn có thể chuyển đổi một mảng phụ thành một chuỗi bằng phương thức bytearray[]6 như sau

1

2

3

4

5

6

7

8

9

10

 

myString = "Java2Blog"

byteArrayObject = bytearray[myString, 'utf-8']

print["Chuỗi đầu vào là. ", myString]

in["Đối tượng mảng phụ là. ", byteArrayObject]

output_string = byteArrayObject. giải mã['utf-8']

print["Chuỗi đầu ra là. ", chuỗi đầu ra]

 

 

 

đầu ra

1

2

3

4

5

 

Chuỗi đầu vào string . Java2Blog

Đối tượng dãy byte object . bytearray[b'Java2Blog']

Đầu ra chuỗi . Java2Blog

 

Một lần nữa, bạn phải chỉ định cùng một định dạng mã hóa đã được sử dụng trong khi tạo mảng phụ từ chuỗi. Nếu không, bạn sẽ nhận được kết quả đầu ra không mong muốn như hình bên dưới

1

2

3

4

5

6

7

8

 

myString = "Java2Blog"

byteArrayObject = bytearray[myString, 'utf-8']

print["Chuỗi đầu vào là. ", myString]

in["Đối tượng mảng phụ là. ", byteArrayObject]

output_string = byteArrayObject. giải mã['utf-16']

print["Chuỗi đầu ra là. ", chuỗi đầu ra]

 

đầu ra

1

2

3

4

5

6

7

8

 

Chuỗi đầu vào string . Java2Blog

Đối tượng dãy byte object . bytearray[b'Java2Blog']

Truy nguyên [hầu hết cuộc gọi gần đây last]:

  Tệp "/home/aditya1117/PycharmProjects/pythonProject/webscraping. py", dòng 5, in

    output_string = byteArrayObject. giải mã['utf-16']

Lỗi UnicodeDecode. 'utf-16-le' codec có thể ' t decode byte 0x67 in position 8: dữ liệu bị cắt bớt

 

Sử dụng Mô-đun codec để chuyển đổi Bytearray thành Chuỗi trong Python

Việc triển khai chức năng bytearray[]6 cũng được đưa ra trong mô-đun byteArrayObject=bytearray[input_string, encoding_format, error_message]0. Bạn cũng có thể sử dụng hàm bytearray[]6 được xác định trong mô-đun byteArrayObject=bytearray[input_string, encoding_format, error_message]0 để chuyển đổi một mảng phụ thành một chuỗi trong python

Ở đây, hàm bytearray[]6 lấy đối tượng bytearray làm đối số đầu tiên và định dạng mã hóa làm đối số thứ hai. Sau khi thực hiện, nó trả về chuỗi đầu ra như trong ví dụ sau

1

2

3

4

5

6

7

8

9

10

 

nhập codec

 

myString = "Java2Blog"

byteArrayObject = bytearray[myString, 'utf-8']

print["Chuỗi đầu vào là. ", myString]

in["Đối tượng mảng phụ là. ", byteArrayObject]

output_string = codec. giải mã[byteArrayObject, ']

print["Chuỗi đầu ra là. ", chuỗi đầu ra]

 

đầu ra

1

2

3

4

5

 

Chuỗi đầu vào string . Java2Blog

Đối tượng dãy byte object . bytearray[b'Java2Blog']

Đầu ra chuỗi . Java2Blog

 

Phần kết luận

Trong bài viết này, chúng tôi đã thảo luận về ba cách để chuyển đổi một đối tượng bytearray thành một chuỗi trong python. Tại đây, bạn có thể sử dụng bất kỳ phương pháp nào để thực hiện thao tác. Tuy nhiên, bạn nên đảm bảo rằng bạn chọn đúng định dạng mã hóa. Nếu không, bạn sẽ không thể có được đầu ra mong muốn

Làm cách nào để chuyển đổi byte thành chuỗi Python?

Các cách khác nhau để chuyển đổi Byte thành chuỗi trong Python. .
Sử dụng phương thức giải mã[]
Sử dụng hàm str[]
Sử dụng codec. phương pháp giải mã []
Sử dụng map[] mà không sử dụng tiền tố b
Sử dụng gấu trúc để chuyển đổi byte thành chuỗi

Làm cách nào để chuyển đổi byte thành chuỗi trong gấu trúc?

Nếu bạn đang sử dụng pandas và có khung dữ liệu byte, bạn có thể nhanh chóng chuyển đổi nó thành chuỗi bằng cách gọi str. phương thức giải mã[] trên một cột .

Làm cách nào để chuyển đổi mảng byte thành chuỗi?

Có 2 cách để chuyển mảng byte thành String. .
Bằng cách sử dụng hàm tạo của lớp String
Bằng cách sử dụng mã hóa UTF-8

Làm cách nào để chuyển đổi dữ liệu nhị phân thành chuỗi trong Python?

Dữ liệu nhị phân được chia thành bộ 7 bit vì bộ nhị phân này làm đầu vào, trả về giá trị thập phân tương ứng là mã ASCII của ký tự trong chuỗi. Mã ASCII này sau đó được chuyển đổi thành chuỗi bằng hàm chr[] .

Chủ Đề