2015-06-04 14 views
12

Ben Python3 bir HTTPS bağlantı yapmaya çalışıyorum ve ben adımı ve şifremi kodlamak çalıştığınızda base64encodebytes yöntemi "\ n" sonunda yeni bir hat karakteri ile kodlanmış değeri döndürür ve bu nedenle ben bağlanmaya çalışırken hata alıyorum.Python3'teki base64 kodlu dizelerden yeni " n" satırını kaldırın?

kodlayan veya yeni satır karakterini kaldırmak için en iyi yolu nedir ne zaman yeni bir satır karakteri eklemek için değil base64 kütüphane anlamanın bir yolu var mı? Ben replace yöntemi kullanarak çalıştı ama aşağıdaki hatayı alıyorum:

Traceback (most recent call last): 
    File "data_consumer.py", line 33, in <module> 
    auth_base64 = auth_base64.replace('\n', '') 
TypeError: expected bytes, bytearray or buffer compatible object 

Kodum:

auth = b'[email protected]:passWORD' 
auth_base64 = base64.encodebytes(auth) 
auth_base64 = auth_base64.replace('\n', '') 

Herhangi bir fikir? Teşekkür

cevap

34

yerine encodestring arasında çalışacak. Daha sonra \n karakterleri eklemez. Örneğin.

In [11]: auth = b'[email protected]:passWORD' 

In [12]: base64.encodestring(auth) 
Out[12]: b'dXNlcm5hbWVAZG9tYWluLmNvbTpwYXNzV09SRA==\n' 

In [13]: base64.b64encode(auth) 
Out[13]: b'dXNlcm5hbWVAZG9tYWluLmNvbTpwYXNzV09SRA==' 

Python 3 kullanım için \n

+0

'base64.standard_b64encode (kimlik doğrulaması)' – SevenDays

+0

@SevenDays '' base64.b64encode (kimlik doğrulama) 'python3 ve' 'base64 ile çalışır, özdeş kodlanmış dizi üretir .standard_b64encode (auth) '' aynı sonucu döndürüyor. –

5

ardından kod b64encode kullanarak düşünün

auth_base64 = auth_base64.decode('utf-8').replace('\n', '') 
İlgili konular