将json:api响应映射到对象属性的快速而肮脏的orm。
jsonapi-orm的Python项目详细描述
json:api orm
将json:api响应映射到对象属性的快速而肮脏的orm。
- 免费软件:BSD许可证
- 文档:https://jsonapi-orm.readthedocs.io。
如何
使用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上的第一个版本。