字节数组转换为图片_每日一课 | Python 3 TypeError:无法将“字节”对象隐式转换为str...
將Python 2套接字示例轉換為Python 3
whois.py?
import?sysimport?socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("whois.arin.net", 43))
s.send((sys.argv[1] + "\r\n").encode())
response = ""while?True:
????data = s.recv(4096)
????response += dataif?not?data:break
s.close()
print(response)
如果使用Python 3進行編譯,是否會提示以下錯誤??
Traceback (most recent call?last):File?"C:\repos\hc\whois\python\whois.py", line 12, in?<module>
????response += data
TypeError: Can't convert 'bytes' object to str implicitly
解
在Python 3中,套接字以bytes為bytes返回數據(在Python 2中為string)。由于響應是一個string,因此您不能直接添加兩種不同的類型( bytes + string)。要修復它 ,您需要轉換類型:#Solution 1將響應從string to bytes轉換string to byteswhois.py?import?sysimport?socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("whois.arin.net", 43))
s.send((sys.argv[1] + "\r\n").encode())#Convert response to bytes
response = b""# or use encode()#response = "".encode()while?True:
????data = s.recv(4096)
????response += dataif?not?data:break
s.close()
print(response.decode())
import?sysimport?socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("whois.arin.net", 43))
s.send((sys.argv[1] + "\r\n").encode())
response = ""while?True:
????data = s.recv(4096)#convert data from bytes to string#response += data
????response += data.decode()if?not?data:break
s.close()
print(response)
參考文獻:
推薦閱讀--
我司空降了一名專家后,一半程序員瘋了...
程序員長假相親圖鑒(文末驚喜)
每日一課 | Python –如何在函數中使用全局變量
每日一課 | Python將文件讀入列表
每日一課 | 如何將String轉換為int
球分享
球點贊
球在看
總結
以上是生活随笔為你收集整理的字节数组转换为图片_每日一课 | Python 3 TypeError:无法将“字节”对象隐式转换为str...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DES的原理及python实现
- 下一篇: python计算绩效工资_python实