使用类型化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如何在Microsoft Office Word或Excel文档中查找突出显示的文本   Java反射:获取方法返回参数的类型   java根据从字符串解析的日期对ArrayList<String>进行排序   不带IDE JSONObject的json JAVA   Selenium检查属性是否包含java中字符串的一部分   java Hibernate在使用@PostConstruct时找不到绑定到线程的会话   java频繁访问对象属性会带来成本吗?   java如何使用spring boot从json更新数据   Android Studio中的java适当边距布局   java spring引导无法在spring测试类中注入spring服务   java在插入排序中删除重复项   如何在JAVA中重写异常类方法   java Guava缓存内存泄漏   多线程处理三个必须并行执行的任务completableFuture,如果其中任何一个在java中引发异常,则全部取消