val*_*oiv 1 python http python-3.x python-bytearray
我想通过 HTTP 发送音频数据,但我不明白为什么会出现此异常:
Run Code Online (Sandbox Code Playgroud)Exception happened during processing of request from ('127.0.0.1', 59976) Traceback (most recent call last): File "/usr/lib/python3.6/socketserver.py", line 654, in process_request_thread self.finish_request(request, client_address) File "/usr/lib/python3.6/socketserver.py", line 364, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python3.6/socketserver.py", line 724, in __init__ self.handle() File "/usr/lib/python3.6/http/server.py", line 418, in handle self.handle_one_request() File "/usr/lib/python3.6/http/server.py", line 406, in handle_one_request method() File "/home/vivanov/temp.py", line 113, in do_GET data.append(bytearray(stream.read(CHUNK))) TypeError: 'bytearray' object cannot be interpreted as an integer
问题似乎与将值传递给wfile.write.
我该如何解决这个问题?
这是我的代码:
Exception happened during processing of request from ('127.0.0.1', 59976)
Traceback (most recent call last):
File "/usr/lib/python3.6/socketserver.py", line 654, in process_request_thread
self.finish_request(request, client_address)
File "/usr/lib/python3.6/socketserver.py", line 364, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python3.6/socketserver.py", line 724, in __init__
self.handle()
File "/usr/lib/python3.6/http/server.py", line 418, in handle
self.handle_one_request()
File "/usr/lib/python3.6/http/server.py", line 406, in handle_one_request
method()
File "/home/vivanov/temp.py", line 113, in do_GET
data.append(bytearray(stream.read(CHUNK)))
TypeError: 'bytearray' object cannot be interpreted as an integer
Run Code Online (Sandbox Code Playgroud)
尽管它的名字,如果你想一次将多个元素附加到 Python 中的类似列表的对象,你不能使用该append方法。Abytearray就像一个字节列表,因此将另一个附加或连接bytearray到它的extend方法是使用方法,或者+=:
data += bytearray(...)
# OR
data.extend(bytearray(...))
Run Code Online (Sandbox Code Playgroud)
事实上,如果您添加的任何bytearray内容已经可以传递到bytearray()构造函数中,那么您可能不需要将它包装在bytearray(). 例如,可以直接添加bytes对象(如b'something'):
data += b'something'
Run Code Online (Sandbox Code Playgroud)
一旦您修复了该行代码,您可能会在其他行上遇到问题。例如,如果wfile.writetake bytes,那么向它发送一个 unicode 字符串'0\r\n\r\n'可能会出错;看起来你打算写b'0\r\n\r\n'.
| 归档时间: |
|
| 查看次数: |
8828 次 |
| 最近记录: |