UDP广播接收的数据看起来像2个DICT,但不知何故组合为一个?

2024-10-06 13:00:28 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码发送UDP广播以从局域网上的两个OW服务器获取数据。回复为:

{u'Product':u'OWServer_v2-Enet',u'Name':u'OWServer_v2-Enet_19',u'IP':u'10.0.1.19',u'tcpintfort':u'0',u'HTTPPort':u'80',u'MAC':u'00-04-A3-B1-F1-86',u'Bootloader':u'POST',u'fver':u'1.44',u'NETBios':u'EDSOWSERVER19'} {u'Product':u'OWServer_v2-Enet',u'Name':u'OWServer_v2-Enet_20',u'IP':u'10.0.1.20',u'tcpintfort':u'0',u'HTTPPort':u'80',u'MAC':u'00-04-A3-C1-43-86',u'Bootloader':u'POST',u'fver':u'1.44',u'NETBios':u'EDSOWSERVER20'}

我所做的任何事情都会将这两个dict视为一个,例如print resp[“Name”]返回

OWServer_v2-Enet_19

OWServer_v2-Enet_20

这两个单词之间没有空格或逗号,因此我无法拆分它们

有人知道如何做到这一点吗

import socket
import json 

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,     socket.IPPROTO_UDP)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)
s.sendto("D", ('<broadcast>', 30303))

while True:
    resp = s.recv(1024)

    resp = json.loads(resp)

    print resp

Tags: nameipmacsocketproductpostrespa3