objectmapper是一个用于自动对象映射的类。它帮助您以简单、透明的方式在项目层(数据层、服务层、视图)之间创建对象。

object-mapper的Python项目详细描述


版本1.1.0

authormarazt

版权所有marazt

许可证麻省理工学院许可证(mit)

上次更新时间2019年7月13日

包下载https://pypi.python.org/pypi/object-mapper-

版本

1.1.0-2019/07/13

1.0.7-2019/06/19

1.0.6-2018/10/28

1.0.5-2018/02/21

1.0.4-2017/11/03

  • 迁移到新的pypi.org部署

1.0.3-2015年5月15日

1.0.2-2015/05/06

1.0.1-2015/02/19

  • 包信息的修复

1.0.0-2015/02/19

  • 初始版本

关于

objectmapper是一个受.netautomapper启发的自动对象映射类。它帮助您以简单、透明的方式在项目层(数据层、服务层、视图)之间创建对象。

示例

  1. 映射没有映射定义的属性

在这种情况下,只映射目标类和源类中目标类的这些属性。其他属性未映射。假设类A具有属性namelast_name,类B具有属性name。objectmapper的初始化为:

python   mapper = ObjectMapper()   mapper.create_map(A, B)   instance_b = mapper.map(A(), B)

在这种情况下,a.name的值将被复制到b.name中。

  1. 使用定义的映射函数进行映射

假设类A具有属性first_namelast_name,类B具有属性full_name,类C具有属性反转名。并希望以某种方式映射它B.full_name = A.first_name + A.last_nameC.reverse_name = A.last_name + A.first_name对象映射器的初始化将是:

``` python mapper=objectmapper()映射器。创建映射器(a,b,{'name':lambda a:a.first_name+“”+a.last_name})映射器。创建映射器(a,c,{'name':lambda a:a.last_name+“”+a.first_name})

实例b=mapper.map(a(),b)实例c=mapper.map(a(),c)```

在这种情况下,映射到B.name的将被映射到A.first_name + " " + A.last_name,在这种情况下,映射到C.name的将被映射到A.last_name + " " + A.first_name

  1. 映射抑制

出于某些目的,可能需要抑制某些映射。假设类A具有属性namelast_name,类B具有属性namelast_name。我们只想将A.name映射到B.name,而不是A.last_nameB.last_name对象映射器的初始化将是:

``` python mapper=objectmapper()mapper.create_map(a,b,{'last_name':none})

实例b=mapper.map(a(),b)```

在这种情况下,a.name的值将被属性namename自动复制到B.name。由于抑制(lambda函数为none),属性A.last_name将不会被映射。

  1. 不区分大小写映射

假设我们有一个类A,它的属性分别是NameAgeAgeB分别是nameageageB和^{{tt1}$到B的映射^{{tt1}$到^{{tt4}$,映射器的初始化将是B.name=A.NameB.age=B.age=^{{tt43}$初始化对象映射器的初始化将是A.Age初始化{tt:

python   mapper = ObjectMapper()   mapper.create_map(A, B)   instance_b = mapper.map(A(), B, ignore_case=True)

在这个Case,a.name的值将被复制到b.name中,a.age的值将被复制到b.age中。

注意:您可以在测试包中找到更多示例

安装

好好享受吧!

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

推荐PyPI第三方库


热门话题
java InputStream对象在声明后关闭   java未定义名为“transactionManager”的bean重命名transactionManager   java“jar”命令何时会拒绝将类添加到java中。jar文件?   java JPA标准依赖WHERE子句   安卓中从SD卡读取文本文件时出现java错误   java直接启用类似位置的权限   使用@WebMvcTest和Mockito-BDDMockito对SpringBoot-RestController进行java测试   java JSESSIONID存储在哪里?   java jtextarea鼠标事件覆盖容器鼠标事件   java DRL无法解析动态加载的类   java是从一个方法返回多个对象的最简单方法   java自定义按钮/编辑框是否不可见?   java GUI如何在保存用户输入的同时在面板或框架之间切换   swing Java自定义JSlider不会更新   GridBagLayout中的java超过1个JPanel   java从ProjectReactor中的flux中采样除第一个元素外的所有元素   Java泛型和泛型类型   Java代码生成宽指令的jvm