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ạobytearray[]
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ạobytearray[]
. 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 là. Java2Blog
Đối tượng dãy byte object là. 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 là. Java2Blog
Đối tượng dãy byte object là. bytearray[b'Java2Blog']
Đầu ra chuỗi là. 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 là. Java2Blog
Đối tượng dãy byte object là. 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 là. Java2Blog
Đối tượng dãy byte object là. bytearray[b'Java2Blog']
Đầu ra chuỗi là. 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 là. Java2Blog
Đối tượng dãy byte object là. 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 là. Java2Blog
Đối tượng dãy byte object là. bytearray[b'Java2Blog']
Đầu ra chuỗi là. 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