繁体   English   中英

Python dict 通过 JSON 和 Rails Action Cable Web 套接字转换为 Ruby 哈希

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM