使用类型化netstring的数据序列化

tnetstring的Python项目详细描述


这是一个数据序列化库。它很像json,但它使用 称为“typed netstrings”的新语法,zed建议在 Mongrel2网络服务器。它被设计成更简单更容易实现 比json更快,在很多情况下也更快。

普通的netstring是一个数据块,其前缀是长度,后缀是 用一个正确的逗号。字符串“hello world”编码如下:

11:hello world,

类型化的netstring通过用类型标记替换逗号来添加其他数据类型。 下面是编码为tnetstring的整数12345:

5:12345#

下面的列表[12345,true,0]混合了整数和布尔值:

19:5:12345#4:true!1:0#]

够简单吗?本模块提供以下功能:

dump:dump an object as a tnetstring to a file
dumps:dump an object as a tnetstring to a string
load:load a tnetstring-encoded object from a file
loads:load a tnetstring-encoded object from a string
pop:pop a tnetstring-encoded object from the front of a string

注意,由于解析tnetstring需要将所有数据读入内存 同时,使用这些基于文件的版本不会提高效率 功能。它们只在这里,所以您可以使用load()精确地读取一个 不消耗任何额外数据的文件或套接字中的项。

tnetstrings规范明确声明字符串是二进制blob 禁止在协议级别使用Unicode。为了方便 python程序员,这个库允许您指定应用程序级编码 要将python的unicode字符串转换为二进制blob或从二进制blob转换为unicode字符串,请执行以下操作:

>>> print repr(tnetstring.loads("2:\xce\xb1,"))
'\xce\xb1'
>>>
>>> print repr(tnetstring.loads("2:\xce\xb1,", "utf8"))
u'\u03b1'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Websphere MQ临时队列上未收到回复   泛型构造函数在Java中的作用是什么?   java在Youtube HTTP请求中指定空格字符   hashmap在Java中如何读取另一个地图中的地图?   如果有类,java将在编译时签入。类派生自另一个类。班   java在安卓 junit测试执行期间捕获logcat输出   java如何在列表中拆分不同类型的字符串   java仅从输入读取某些行?   java在执行jar后继续批处理文件   ICEPDF Java中书签的框架设置   java将文件上传到服务器根目录   java如何在Spring Boot中缓存CompletableFuture的值   java正则表达式来解析命令字符串   java Hibernate按关联属性过滤   使用Java提取HTML标记   java Hibernate配置使用JAR模块中的注释在Spring MVC EAR项目中不起作用   java为什么我在传递给freemarker的哈希映射上得到一个null值,而它不是null?