将json:api响应映射到对象属性的快速而肮脏的orm。

jsonapi-orm的Python项目详细描述


json:api orm

https://img.shields.io/pypi/v/jsonapi_orm.svgCircleCICoveralls githubDocumentation Status

将json:api响应映射到对象属性的快速而肮脏的orm。

如何

使用Requests或(如果您是受虐狂)python的内置urllib模块向json:api服务发出请求,然后从那里将响应传递给json:api orm。

所以,首先安装请求和这个库:

pip install requests
pip install jsonapi-orm

切换到您的python代码并使用魔法!

importrequestsfromjsonapi_ormimportresponse_to_obj# list of itemsr=requests.get('https://raw.githubusercontent.com/mislavcimpersak/jsonapi-orm/master/tests/responses/example_list.json')obj=response_to_obj(r.json())print('LIST OF ITEMS:')foriteminobj.data:print(item.title)# author is defined as a relationshipprint(item.author.twitter)# single itemr=requests.get('https://raw.githubusercontent.com/mislavcimpersak/jsonapi-orm/master/tests/responses/example_single.json')obj=response_to_obj(r.json())print('SINGLE ITEM')print(obj.data.title)# author is defined as a relationshipprint(obj.data.author.id)print(obj.data.author.twitter)

注意事项

  • 由于python对象属性名have certain rules喜欢不以数字开头或不包含“-”字符,因此可以使用.get()方法访问所有此类属性。即obj.data.author.get('first-name')
  • 如果在响应匹配的included部分中没有更详细地描述关系,则匹配将以静默方式失败。
  • 目前,这个lib并没有懒洋洋地遵循关系链接之类的东西。当然,您可以向给定的链接发出一个新请求,并将该响应传递给json:api orm。
  • 目前,还没有检查响应是否是有效的json:api响应。但当事情开始中断时,您可能会发现您正在尝试解析无效的响应。
  • 最后,这个库需要Python3.5或更新版本。

历史记录

0.1.8(2018-04-06)

  • 添加了测试配置和基本测试。

0.1.7(2018-03-25)

  • 在文档的FrontPage中使用readme.rst。

0.1.7(2018-03-25)

  • 固定管道安装。

0.1.6(2018-03-25)

  • pypi的自述文件修复。

0.1.5(2018-03-25)

  • pypi的自述文件修复。

0.1.4(2018-03-25)

  • 使用本报告中jsonapi.org中稍有修改的示例自述示例。

0.1.3(2018-03-25)

  • 当子数据不存在时修复错误。

0.1.2(2018-03-25)

  • 修复了响应中不存在包含的错误。

0.1.0(2018-03-24)

  • pypi上的第一个版本。

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

推荐PyPI第三方库


热门话题
java操作数组上的字符串   java JAXB内容未实例化   图形在Java中如何绘制垂直居中的字符串?   java Apache Ant:使用Junit时出现NoClassDefFoundError   java无法从服务器上运行perl脚本   如何在java中沿树进行预排序遍历,并打印0和1以对应每个节点上的特定字符?   java如何创建。p12文件?   java线程访问无效   java只匹配命名空间中的XML节点,而不知道NS前缀   从java获取2d arraylist元素   数组Java动态集合对象   java Xpath通过通配符或布尔运算查找以相同名称开头的节点?   java注释元素类型   java在中看不到Super()。反编译后的类文件