Computer >> Máy Tính >  >> Lập trình >> Python

Chuyển đổi khóa byteString:cặp giá trị của từ điển thành chuỗi trong Python

Chuỗi byte trong python là một chuỗi hiện tại với chữ cái b có tiền tố trên đó. Trong bài viết này, chúng ta sẽ xem cách chuyển đổi một từ điển có chuỗi bytecode thành một từ điển bình thường chỉ đại diện cho các chuỗi.

Với giải mã và ascii

Phương thức chuỗi Python decode () giải mã chuỗi bằng cách sử dụng codec đã đăng ký để mã hóa. Nó mặc định là mã hóa chuỗi mặc định. Chúng tôi sử dụng nó để chuyển đổi giá trị bytecode thành các giá trị asci bình thường bằng cách cung cấp ascii làm tham số cho hàm giải mã.

Ví dụ

bstring = {b'day': b'Tue', b'time': b'2 pm', b'subject': b'Graphs'}
print(bstring)
# Use decode
stringA = {y.decode('ascii'): bstring.get(y).decode('ascii') for y in bstring.keys()}
# Result
print(stringA)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

{'subject': 'Graphs', 'day': 'Tue', 'time': '2 pm'}
{u'time': u'2 pm', u'day': u'Tue', u'subject': u'Graphs'}

Với giải mã và utf-8

Chúng ta có thể thực hiện một cách tiếp cận tương tự như trên nhưng lần này sử dụng utf-8. Thiết kế vòng lặp for cho cặp giá trị khóa và lặp qua từng cặp để chuyển đổi các giá trị thành biểu diễn utf-8.

Ví dụ

bstring = {b'day': b'Tue', b'time': b'2 pm', b'subject': b'Graphs'}
print(bstring)
# Use decode
stringA = {}
for key, value in bstring.items():
   stringA[key.decode("utf-8")] = value.decode("utf-8")
# Result
print(stringA)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

{'subject': 'Graphs', 'day': 'Tue', 'time': '2 pm'}
{u'time': u'2 pm', u'day': u'Tue', u'subject': u'Graphs'}