如果你可以完全控制的協議,或者說format after serialization
,我建議使用一些現有的解決方案,例如,由Python標準庫提供Pickle,Json這在網絡非常流行,或Protobuf這是跨語言提供由谷歌
Pickle:
>>> import pickle
>>> formattuple = (1990,12,24,13,37,11,1)
>>> s = pickle.dumps(formattuple)
>>> s
'(I1990\nI12\nI24\nI13\nI37\nI11\nI1\ntp0\n.'
>>> pickle.loads(s)
(1990, 12, 24, 13, 37, 11, 1)
Json:
>>> import json
>>> formattuple = (1990,12,24,13,37,11,1)
>>> s = json.dumps(formattuple)
>>> s
'[1990, 12, 24, 13, 37, 11, 1]'
>>> json.loads(s)
[1990, 12, 24, 13, 37, 11, 1]
請注意,json有一些限制,比如字典,列表和元組以外的其他對象更難以序列化和反序列化。並且不會反序列化爲完全相同的格式,因爲某些數據結構(如元組)不存在於json中
Protobuf是更強大但更復雜的解決方案。您需要首先定義數據模式。
不幸的是我無法控制協議。傳入的字符串總是與我發佈的字符串類似。 – Josch