首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过JSON和Rails Action Cable web socket将Python字典转换为Ruby哈希

通过JSON和Rails Action Cable web socket将Python字典转换为Ruby哈希
EN

Stack Overflow用户
提问于 2020-02-04 02:37:40
回答 1查看 136关注 0票数 0

我很难通过web套接字(使用Action Cable)将信息从python脚本正确地传递到rails应用程序。

我想在python字典中使用输入信息,如下所示:

代码语言:javascript
复制
message = {
    'command':"subscribe",
    'identifier':{
            'channel': 'RaspChannel',
            'rasp_local_id': '1'
        }
    }

然后将其转换为JSON,通过Action Cable设置的web套接字,然后在服务器端解析为ruby hash。

出于某种原因,我只是通过套接字发送一个普通字符串来使其工作:

代码语言:javascript
复制
'{"command":"subscribe","identifier":"{\\"channel\\":\\"RaspChannel\\", \\"rasp_local_id\\": \\"1\\"}"}'

但是我不能通过发送json.dumps(message)来让它工作,即使它返回了对我来说很好的东西:

代码语言:javascript
复制
{"command": "subscribe", "identifier": {"channel": "RaspChannel", "rasp_local_id": "1"}}

我认为action cable协议在它接收的json字符串上使用了经典的ruby JSON.parse方法,并且出于某种原因,它总是抛出一个解析错误,除非我使用上面提到的普通字符串。

然而,由于我想让消息更复杂,如果我能让它从一开始就能与实际的Python字典一起工作,那就更好了。

知道我错过了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2020-02-04 20:55:28

经过更多的研究,这个问题似乎不是来自于JSON python编码、ruby解码,也不是我滥用了这些方法。

实际上,看起来actioncable在接收消息时使用的协议并不完全依赖于“经典的”JSON,而是使用“JSON内的转义JSON”作为标识符

有关rails github问题的更多信息,请单击此处https://github.com/rails/rails/issues/22675

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60045207

复制
相关文章

相似问题

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