我有一部分代码如下:
for line in response.body.split("\n"):
if line != "":
opg = int(line.split(" ")[2])
opc = int(line.split(" ")[3])
status = int(line.split(" ")[5])
if command == 'IDENTIFY':
if opg==opcodegroupr and opc==opcoder:
if status=="0":
IEEEAddrRemoteDev = line.split(" ")[6:14]
ret['success'] = "IDENTIFY: The value is %s " % (IEEEAddrRemoteDev)
self.write(tornado.escape.json_encode(ret))
self.finish()
变量'line'就是这样的例子:
1363011361 2459546910990453036 157 0 17 0 209 61 0 0 0 0 0 0 0 0 0 0 0 0 0 201
我想例如从6到14取字段并“合并”彼此以打印IEEEAddrRemoteDev就像整个字符串一样。
这是
IEEEAddrRemoteDev = line.split(" ")[6:14]
正确的方法?如果我写
print IEEEAddrRemoteDev
我什么都没得到。
有些不对劲......
答案 0 :(得分:6)
您想使用join
:
ret['success'] = "IDENTIFY: The value is %s " % (" ".join(IEEEAddrRemoteDev))
然而,更大的问题是您的status=="0"
行永远不会为真(因为status
是一个int),将其更改为
if status == 0:
答案 1 :(得分:0)
我没有完全理解你想要的输出。但是当你写下这一行时:
IEEEAddrRemoteDev = line.split(" ")[6:14]
您正在做的是按空格分割字符串,因此输出当前为:
['209', '61', '0', '0', '0', '0', '0']
我假设你想要以下输出?
'20961000000' ?
如果是这样,只需在print语句之前添加以下行:
"".join(IEEEAddrRemoveDev)