首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用Python解析来自sse.client的输出?

如何用Python解析来自sse.client的输出?
EN

Stack Overflow用户
提问于 2015-04-09 22:51:29
回答 1查看 4.2K关注 0票数 7

我是Python新手,我正试图在解析SSE客户端代码方面取得进展。我正在使用SSE客户端库。我的代码是非常基本的,完全遵循示例。下面是:

代码语言:javascript
复制
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数据。下面是示例输出:

代码语言:javascript
复制
<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“。我正在努力弄清楚如何解析输出,这样我就可以提取其中一个字段,而我尝试过的任何内容都没有奏效。

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

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-10 00:57:14

我想出来了。如果其他人也遇到同样的问题,下面是我如何让它工作的方法。关键是使用msg.data,而不仅仅是msg。然后,我使用JSON库转换了out,这样就很好了。

代码语言:javascript
复制
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])
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29550426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档