Python与JavaScript的通信
好的,我正在使用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]}]