2017-03-06 78 views
0

我有這樣的,通過Github的API,BASE64解碼後:如何把字節字符串列表轉換爲字符串在Python3

[b'<!DOCTYPE html>\n', b'<html>\n', b' <head>\n'] 

而且我真的很喜歡一個字符串(與\n行尾)或字符串列表。

我花了一個小時追逐TypeError: a bytes-like object is required, not 'str',因爲我認爲這是已經字符串列表,並質疑我自己的λ/過濾能力我才意識到根本原因是其他地方。我嘗試了谷歌搜索,但我只獲得'python字節串'這是不同的命中。

+0

「python字節串」如何不同? – tripleee

回答

1

你可以只mapbytes.decode方法給每個元素,然後join它,如果你需要一個字符串:

l = [b'<!DOCTYPE html>\n', b'<html>\n', b' <head>\n'] 
s = "".join(map(bytes.decode, l)) 

,或者調用列表-COMP每個元素decode如果你需要一個列表:

ls = [i.decode() for i in l] 

的結果現在正在:

>>> print(repr(s)) # repr to show \n 
'<!DOCTYPE html>\n<html>\n <head>\n' 
>>> print(ls) 
['<!DOCTYPE html>\n', '<html>\n', ' <head>\n'] 
+0

謝謝。我忍不住想知道'TypeError:類似字節的對象的錯誤信息是否是必需的,而不是str'對於noobs可能更有幫助 –