【发布时间】:2020-05-19 13:29:24
【问题描述】:
我很难通过网络套接字(使用 Action Cable)将信息从 python 脚本正确传递到 rails 应用程序。
我想像这样在 python 字典中使用输入信息:
message = {
'command':"subscribe",
'identifier':{
'channel': 'RaspChannel',
'rasp_local_id': '1'
}
}
然后将其转换为 JSON,通过 Action Cable 设置的网络套接字,然后在服务器端解析为 ruby 哈希。
出于某种原因,我只是通过套接字发送一个纯字符串来使其工作:
'{"command":"subscribe","identifier":"{\\"channel\\":\\"RaspChannel\\", \\"rasp_local_id\\": \\"1\\"}"}'
但我无法通过发送 json.dumps(message) 使其工作,即使它返回的东西对我来说看起来不错:
{"command": "subscribe", "identifier": {"channel": "RaspChannel", "rasp_local_id": "1"}}
我想 action cable 协议在它作为输入接收的 json 字符串上使用了经典的 ruby JSON.parse 方法,并且由于某种原因,它总是抛出解析错误,除非我使用我上面提到的纯字符串。
但是,由于我想让消息更复杂,如果我能从一开始就让它与实际的 Python 字典一起使用会更好。
知道我缺少什么吗?
【问题讨论】:
-
了解 ruby 中字符串的 as_json 和 to_json 方法。它可能会有所帮助
-
我调查过了,但实际上,我在 ruby 方面做不了太多事情,因为 action cable server 抛出来自 Python 编码的 JSON 的错误
-
我对 python 的了解非常有限,但是以 json 格式发送可能会有所帮助吗? stackoverflow.com/questions/26745519/…
标签: python ruby-on-rails dictionary hash actioncable