跳至主要内容

使用类型化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 (17.0 kB 查看哈希)

上传时间

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面