序列化库或hipack交换格式

hipack的Python项目详细描述


Documentation StatusBuild StatusCode Coverage

hipack是一个python模块,用于HiPack 序列化格式。该api有意与标准的api相似 jsonpickle模块。

功能:

  • 支持读取和写入HiPack version 1。这个 还实现了以下扩展:

    (请注意,HEPS中定义的扩展在 作为建议进行讨论。)

  • 小型的、自包含的、纯python实现。

  • 与Python2.6(或更新版本)和3.2(或更新版本)兼容。

用法

给定以下输入文件:

# Configuration file for SuperFooBar v3000
interface {
  language: "en_US"
  panes {
    top: ["menu", "toolbar"]  # Optional commas in lists
    # The colon separating keys and values is optional
    bottom
      ["statusbar"]
  }
  ☺ : True  # Enables emoji
  Unicode→Suþþorteð? : "Indeed, Jürgen!"
}

# Configure plug-ins
plugin: {
  preview  # Whitespace is mostly ignored
  {
    enabled: true
    timeout: 500  # Update every 500ms
  }
}

注意,键和值之间的:分隔符是可选的,并且 可以省略。另外,请注意空格(包括新行)是如何 完全没有意义,结构只能用大括号来确定 和括号。最后但并非最不重要的是,有效的键是任何unicode字符 不包含空格或冒号的序列

以下代码可用于将其读入python字典:

importhipackwithopen("superfoobar3000.conf","rb")asf:config=hipack.load(f)

转换按预期工作:

  • 节被转换成字典。
  • 键被转换为字符串。
  • 双引号中的文本将转换为字符串。
  • 封装在{ }中的节将转换为字典。
  • 封装在[ ]中的数组将转换为列表。
  • 数字转换为intfloat,以较大者为准 适当的。
  • 布尔值转换为bool

以下内容可用于将python字典转换为其文本 表示:

users={"peter":{"uid":1000,"name":"Peter Jøglund","groups":["wheel","peter"],},"root":{"uid":0,"groups":["root"],}}importhipacktext=hipack.dumps(users)

生成文本表示时,每个字典的键将 进行排序,以确保生成的输出是稳定的。字典 前面的片段将以如下文本形式编写:

peter: {
  name: "Peter Jøglund"
  groups: ["wheel" "peter"]
  uid: 1000
}
root: {
  groups: ["root"]
  uid: 0
}

安装

稳定版本被上传到PyPI,所以 可以使用pip

安装和升级它们
pip install hipack

或者,您可以自行安装开发版本- 直接从git存储库:

pip install -e git://github.com/aperezdc/hipack-python

开发

如果您想参与,请使用常见的github工作流:

  1. 克隆存储库。
  2. 攻击你的克隆人。
  3. 发送请求以供审阅。

如果您没有编程技能,您仍然可以通过reporting issues贡献 遭遇。

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

推荐PyPI第三方库


热门话题
java无法打开ServletContext资源[/WEBINF/mvcdispatcherservlet.xml]   java中的超时方法   java在ext2文件系统的根目录中创建新文件   java Oracle BPM 12c使用人工任务启动器的外部UI发送404弹出窗口   java获取组织。阿帕奇。hadoop。蜂箱ql.exec。矢量。DecimalColumnVector无法强制转换为org。阿帕奇。hadoop。蜂箱ql.exec。矢量。长柱向量   JavaGradle:向JAR文件的类路径添加类   playframework 2.0调用java中的scala操作来编写单元测试用例   循环Java在出现提示时无法收集字符串   需要帮助在Java中将数字转换为word吗   为什么人们忽视了java。类路径和。项目   使用快速搜索框的java动态安卓搜索   java Log4j未正确压缩   图像如何在grails/java中将PNG转换为jpeg   java以前使用过不同的监视器   EclipseLink对实体“setter”方法的java多次调用   javascript动态设置下拉列表的选定默认值   java如何从可扩展列表视图中删除子级   java中的单元测试