【问题标题】:Python to javascript communicationPython 到 javascript 的通信
【发布时间】:2010-10-08 12:22:01
【问题描述】:

好的,所以我使用 websockets 让 javascript 与 python 对话,效果很好但是我需要发送的数据通常有几个部分,比如数组,(用户名、时间、文本)但我怎么能发送呢?我最初想用 base64 或 urlencode 对每一个进行编码,然后使用像 | 这样的字符。这些编码方法永远不会使用然后拆分信息。不幸的是我找不到python和javascript都可以做的方法。

所以问题是,有没有一种 Bath 可以做的编码方法,或者有没有更好的方法可以发送数据,因为我以前没有真正做过这样的事情。 (我只有 AJAX 请求,我发送的数据是 URL 编码的)。我也不会发送数英里的文本,如果那样的话,一次大约 100 字节。 谢谢!

编辑

大多数 cmets 指向 JSON,所以,什么是用于 javascript 的最佳转换,因为 javascript 愚蠢地无法将字符串转换为 JSON,反之亦然。

完成

jaascript 确实有一种将 javascript 转换为字符串的本地方法,它只是隐藏在世界之外。 JSON.stringify(obj, [replacer], [space]) 将其转换为字符串, JSON.parse(string, [reviver]) 将其转换回

【问题讨论】:

  • 请注意,JSON.stringifyJSON.parse 并不存在于所有 JavaScript 实现中。许多旧浏览器不支持。

标签: javascript python sockets encoding


【解决方案1】:

JSON 绝对是要走的路。它的开销非常小,并且能够存储几乎任何类型的数据。我不是 python 专家,但我确信有某种可用的 en/decoder。

【讨论】:

  • 我也喜欢 JSON,但它确实没有“小”开销,除非您与更糟糕的东西 (XML) 进行比较。例如,在相同类型的对象数组中,对象字段名称在每个对象中重复。当然,可以重新设计数据结构以分解出字段名称,但最好有一种可以自动完成的编码格式。
  • +1 在 JSON 上。 simplejson 是一个 python 包,可以帮助你做到这一点。
  • @Pointy:没错,但我不知道有一种比 JSON 开销更小的格式。至少没有本地人。
  • 好吧,我不会说 json 的开销很小。什么是 javascript 中最好的 JSON 转换器,因为由于某种原因,javascript 无法将字符串本地转换为 JSON 数组。
  • Google 协议缓冲区将是一种开销显着降低的格式示例,任何二进制格式也是如此。这并不是说 JSON 有什么问题,这似乎完全足够了。
【解决方案2】:

使用 json 模块(或 Python 2.6 之前的 simplejson)。

您只需要记住两个函数:json.dumps 和 json.loads。

>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> json.loads('["foo", {"bar": ["baz", null, 1.0, 2]}]')
[u'foo', {u'bar': [u'baz', None, 1.0, 2]}]

【讨论】:

    猜你喜欢
    • 2019-05-31
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多