使用类型化netstring进行数据序列化
项目描述
这是一个数据序列化库。它非常类似于JSON,但是使用了一种名为“类型化netstring”的新语法,这是Zed为Mongrel2网络服务器提出的。它旨在比JSON更简单、更容易实现,而且在许多情况下也更快。
一个普通的netstring是一块数据,前面有长度前缀,后面有校验逗号。字符串“hello world”编码如下
11:hello world,
类型化netstring通过用类型标记替换逗号来添加其他数据类型。以下是将整数12345编码为tnetstring的示例
5:12345#
以下是将列表[12345,True,0]编码为tnetstring的示例,其中混合了整数和布尔值
19:5:12345#4:true!1:0#]
简单吗?此模块提供以下函数
- dump:
将对象作为tnetstring写入文件
- dumps:
将对象作为tnetstring写入字符串
- load:
从文件中加载tnetstring编码的对象
- loads:
从字符串中加载tnetstring编码的对象
- pop:
从字符串前面弹出tnetstring编码的对象
请注意,由于解析tnetstring需要一次性将所有数据读入内存,因此使用这些函数的基于文件的版本没有效率提升。它们仅在此处,以便您可以使用load()从文件或套接字中精确读取一个项目,而不消耗任何额外数据。
tnetstrings 规范明确指出字符串是二进制数据块,并在协议级别禁止使用 Unicode。为了方便 Python 程序员使用,这个库允许您指定应用级别的编码来将 Python 的 Unicode 字符串转换为二进制数据块以及反过来。
>>> print repr(tnetstring.loads("2:\xce\xb1,")) '\xce\xb1' >>> >>> print repr(tnetstring.loads("2:\xce\xb1,", "utf8")) u'\u03b1'
项目详情
关闭
tnetstring-0.2.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 55715a5d758214034db179005def47ed842da36c4c48e9e7ae59bcaffed7ca9b |
|
MD5 | 15c2865d2a67538b9f1a88ed0432d235 |
|
BLAKE2b-256 | 75194b82ac8ff96d99e41f0e7b5544e7128c9c0c661c2f46c1d987f59c10bb19 |