[英]Python dict to Ruby hash through JSON and Rails Action Cable web socket
我很难通过网络套接字(使用 Action Cable)将信息从 python 脚本正确传递到 rails 应用程序。
我想在这样的 python 字典中使用输入信息:
message = {
'command':"subscribe",
'identifier':{
'channel': 'RaspChannel',
'rasp_local_id': '1'
}
}
然后应该将其转换为 JSON,通过 Action Cable 设置的 Web 套接字,然后在服务器端解析为 ruby 哈希。
出于某种原因,我只是通过套接字发送一个普通字符串来使它工作:
'{"command":"subscribe","identifier":"{\\"channel\\":\\"RaspChannel\\", \\"rasp_local_id\\": \\"1\\"}"}'
但是我无法通过发送json.dumps(message)
使其工作,即使它返回了一些对我来说看起来不错的东西:
{"command": "subscribe", "identifier": {"channel": "RaspChannel", "rasp_local_id": "1"}}
我想动作电缆协议在它作为输入接收的 json 字符串上使用经典的 ruby JSON.parse
方法,并且出于某种原因,它总是抛出解析错误,除非我使用我上面提到的纯字符串。
但是,因为我想让消息变得更复杂,所以如果我能从一开始就让它与实际的 Python 词典一起工作会更好。
知道我缺少什么吗?
经过更多研究,似乎问题不是来自 JSON python 编码、ruby 解码,也不是我滥用这些方法。
实际上,actioncable 在接收消息时使用的协议似乎并不完全依赖于“经典”JSON,而是使用“JSON 中的转义 JSON”作为标识符
更多关于 rails github 问题的信息,请访问https://github.com/rails/rails/issues/22675
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.