用于python的javascript资源表示法

jsrn的Python项目详细描述


此库已被弃用,取而代之的是Odin

一种基于json的资源表示法,可以很容易地转换为对象图。

注意

此项目的正式位置现在是GitHub(对于travis ci支持),即 BitBucket存储库不能包含最新的代码。

Travis CI Status

亮点

  • 基于类的声明式样式
  • 支持所有json原语类型(包括javascript日期)
  • 用于构建复合资源的字段
  • 字段和资源级别验证
  • 易于扩展以支持自定义字段
  • 支持Python2.7+和Python3.3+。

即将推出的功能

正在开发中

  • 可定制的资源文档生成(用于集成到Sphinx
  • 完整的文档(对于当前功能,大约70-80%已完成)

计划

  • 与其他库的集成(即Django模型/表单)

需要

可选

  • jinja2>;=2.7-用于生成文档
  • SimpleJSON-性能改进

示例

定义:

import jsrn

class Author(jsrn.Resource):
    name = jsrn.StringField()

class Publisher(jsrn.Resource):
    name = jsrn.StringField()

class Book(jsrn.Resource):
    title = jsrn.StringField()
    authors = jsrn.ArrayOf(Author)
    publisher = jsrn.ObjectAs(Publisher)
    genre = jsrn.StringField()
    num_pages = jsrn.IntegerField()
>>> b = Book(
        title="Consider Phlebas",
        genre="Space Opera",
        publisher=Publisher(name="Macmillan"),
        num_pages=471
    )
>>> b.authors.append(Author(name="Iain M. Banks"))
>>> jsrn.dumps(b, pretty_print=True)
{
    "$": "Book",
    "authors": [
        {
            "$": "Author",
            "name": "Iain M. Banks"
        }
    ],
    "genre": "Space Opera",
    "num_pages": 471,
    "publisher": {
        "$": "Publisher",
        "name": "Macmillan"
    },
    "title": "Consider Phlebas"
}

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

推荐PyPI第三方库


热门话题
java出现编译错误,我不理解   java在gnu-trove库中是否有任何有序映射?   java Servlet应该有映射,但找不到Servlet   java时间和第二期显示1:10,而不是13:10   java Play Framework 1.2.7 Heroku更新崩溃   线程“main”java中的opencsv异常。lang.NoClassDefFoundError:org/apache/commons/lang3/ObjectUtils   selenium在java中隐藏警告消息   java使用ID引用将JSON实体反序列化为POJO   java无法在JRE 8中加载字体   一个线程中的异常/错误会使整个应用程序停止吗?   java访问重复子规则的元素标签;e、 g.用ANTLR解析(1,2,3)中的a   java如何从平移旋转中找到新坐标   使用HTML Java小程序托管jar文件存在安全问题   java如何按频率而不是字母顺序排列字符串数组   java清除bufferedReader和块以获得更多输入   java解密SAML2断言