我是Python新手,我正试图在解析SSE客户端代码方面取得进展。我正在使用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'>上面的实际输出看起来像一个字典,但它的类型是"sseclient.Event“。我正在努力弄清楚如何解析输出,这样我就可以提取其中一个字段,而我尝试过的任何内容都没有奏效。
很抱歉,如果这是基本的问题,但是有人能提供一些简单的指导,说明我将如何将整个输出转换为字典,或者可能只是提取其中的一个字段?
提前谢谢你!
发布于 2015-04-10 00:57:14
我想出来了。如果其他人也遇到同样的问题,下面是我如何让它工作的方法。关键是使用msg.data,而不仅仅是msg。然后,我使用JSON库转换了out,这样就很好了。
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])https://stackoverflow.com/questions/29550426
复制相似问题