Làm thế nào để bạn chuyển đổi b 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)

Nơi đâ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 <module>

    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 <module>

    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

 

Sự 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

b ở phía trước chuỗi Python là gì?

Trong python, ký tự 'b' trước một chuỗi được sử dụng để chỉ định chuỗi đó là “chuỗi byte“ . Ví dụ. b_str = b'Xin chào, tôi là chuỗi byte'

Chúng ta có thể chuyển đổi danh sách thành chuỗi trong Python không?

Để chuyển đổi danh sách thành chuỗi, hãy sử dụng chức năng Hiểu danh sách Python và hàm join() . Việc hiểu danh sách sẽ duyệt qua từng phần tử một và phương thức nối () sẽ nối các phần tử của danh sách thành một chuỗi mới và trả về nó dưới dạng đầu ra.

Kiểu dữ liệu b trong Python là gì?

Tài liệu Python 3 nêu rõ. Byte bằng chữ luôn có tiền tố là 'b' hoặc 'B'; . Chúng chỉ có thể chứa các ký tự ASCII; .

Phương thức nào dùng để chuyển đổi dữ liệu byte thô thành chuỗi a Tostring() b convert() C encode() D decode()?

Sử dụng phương thức decode() .