Python与JavaScript的通信

1 投票
2 回答
1942 浏览
提问于 2025-04-16 05:12

好的,我正在使用WebSocket让JavaScript和Python进行通信,这个方法效果很好。但是,我需要发送的数据通常有几个部分,比如一个数组(用户名、时间、文本),我该怎么发送呢?我最开始想把每个部分用base64或者url编码,然后用一个像“|”这样的字符来分隔,因为这些编码方法不会使用这个字符,然后再把信息分开。不幸的是,我找不到一个Python和JavaScript都能用的方法。

所以问题是,有没有一种编码方法是两者都能用的,或者有没有其他更好的方法可以发送这些数据,因为我之前没有做过这样的事情。(我之前做过AJAX请求,发送的数据是URL编码的。)而且我发送的文本并不多,大约每次100字节左右。

谢谢!

编辑

大多数评论都提到JSON,那么,JavaScript最好的转换方法是什么呢?因为JavaScript很奇怪,不能把字符串转换成JSON,反之亦然。

结束

其实JavaScript有一种原生的方法可以把JavaScript对象转换成字符串,只是这个方法不太显眼。可以用JSON.stringify(obj, [replacer], [space])把对象转换成字符串,用JSON.parse(string, [reviver])把字符串转换回对象。

2 个回答

7

JSON绝对是个不错的选择。它的开销非常小,几乎可以存储任何类型的数据。我不是Python方面的专家,但我相信一定有一些编码和解码的工具可以使用。

1

使用 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]}]

撰写回答