Python 2.7 如何在Python中解析sse.client的输出?

Python 2.7 如何在Python中解析sse.client的输出?,python-2.7,server-sent-events,Python 2.7,Server Sent Events,我是Python新手,正在尝试在解析SSE客户机代码方面取得进展。我在用电脑。我的代码非常基本,完全遵循示例。这是: from sseclient import SSEClient devID = "xxx" AToken = "xxx" sparkURL = 'https://api.spark.io/v1/devices/' + devID + '/events/?access_token=' + AToken messages = SSEClient(sparkURL) for

我是Python新手,正在尝试在解析SSE客户机代码方面取得进展。我在用电脑。我的代码非常基本,完全遵循示例。这是:

from sseclient import SSEClient


devID = "xxx"
AToken = "xxx"

sparkURL = 'https://api.spark.io/v1/devices/' + devID + '/events/?access_token=' + AToken

messages = SSEClient(sparkURL)

for msg in messages:
    print(msg)
    print(type(msg))
代码运行没有问题,我看到一些空行和SSE数据通过。以下是示例输出:

<class 'sseclient.Event'>
{"data":"0 days, 0:54:43","ttl":"60","published_at":"2015-04-09T22:43:52.084Z","coreid":"xxxx"}
<class 'sseclient.Event'>

<class 'sseclient.Event'>
{"data":"0 days, 0:55:3","ttl":"60","published_at":"2015-04-09T22:44:12.092Z","coreid":"xxx"}
<class 'sseclient.Event'>

{“数据”:“0天,0:54:43”,“ttl”:“60”,“发布于”:“2015-04-09T22:43:52.084Z”,“coreid”:“xxxx”}
{“数据”:“0天,0:55:3”,“ttl”:“60”,“发布于”:“2015-04-09T22:44:12.092Z”,“coreid”:“xxx”}
上面的实际输出看起来像一个字典,但它的类型是“sseclient.Event”。我试图找出如何解析输出,这样我就可以拉出其中一个字段,但我所尝试的一切都不起作用

如果这是基本问题,很抱歉,但是有人可以提供一些简单的指导,告诉我如何将整个输出转换为字典,或者可能只是拉出其中一个字段


提前谢谢你

我知道了。如果其他人也遇到同样的问题,下面是我如何让它工作的。密钥使用的是msg.data,而不仅仅是msg。然后,我使用JSON库转换了代码,很好用

messages = SSEClient(sparkURL)

for msg in messages:
    outputMsg = msg.data
    if type(outputMsg) is not str:
        outputJS = json.loads(outputMsg)
        FilterName = "data"
        #print( FilterName, outputJS[FilterName] )
        print(outputJS[FilterName])
我相信在一些sse服务器实现中,经常使用“空行”作为“保持活动”类型的消息。也就是说,我认为SSECLient应该过滤掉这些信息,因为它们“不是信息”。到今天为止,sseclient的版本也高达0.0.26,因此如果仍然存在问题,请尝试更新库版本。