我如何在python中解决这个TypeError?

时间:2014-04-19 21:08:36

标签: java python python-2.7

我在基于Java代码的python中工作。

我在Java中有这个:

public static byte[]  datosOEM = new byte[900000]; 

我在Python中根据我发现的一些文档写了这个:

datosOEM=bytes([0x90, 0x00, 0x00])

当我运行我的程序时,它会向我显示:

Traceback (most recent call last):
  File "test.py", line 63, in <module> # The line 63 is the location of x1=datosOEM[k];
    x1=datosOEM[k];
IndexError:string index out of range

克雷格更正了这一部分并建议我改为:

datosOEM = bytearray(900000)

现在,当我运行我的程序时,它会向我显示:

Traceback (most recent call last):
  File "test.py", line 10, in <module> # The line 10 is the location of datosOEM = bytearray(900000)
    datosOEM = bytearray(900000)
TypeError: 'type' object has no attribute '__getitem_'

我如何解决这个问题?

我的部分代码是:

...
response=port.read(8)
print(response)
k=0
C=0
conexion=True
if(conexion):
    while(response>200):
        while(C==0):
            x1=datosOEM[k];
            if(x1=1):
                x2=datosOEM[k+1];
... 

1 个答案:

答案 0 :(得分:0)

Craig肯定告诉过你如何用900000字节创建一个bytearray:

datosOEM = bytearray(5)
print(datosOEM)          # bytearray(b'\x00\x00\x00\x00\x00')
datosOEM[0] = 65
print(datosOEM)          # bytearray(b'A\x00\x00\x00\x00')