たとえば、次の 2 つの辞書があります。
schema = {
'type': 'object',
'properties': {
'reseller_name': {
'type': 'string',
},
'timestamp': {
'type': 'integer',
},
},
'required': ['reseller_name', 'timestamp'],
}
と
schema_add = {
'properties': {
'user_login': {
'type': 'string',
},
},
'required': ['user_login'],
}
次に、結果の辞書を追加してマージする方法:
schema_result = {
'type': 'object',
'properties': {
'reseller_name': {
'type': 'string',
},
'timestamp': {
'type': 'integer',
},
'user_login': {
'type': 'string',
},
},
'required': ['reseller_name', 'timestamp', 'user_login'],
}
ルール:
同じパスは、例ではproperties
and required
forです。scheme
scheme_add
- 両方の dict に同じパスの dict がある場合、それらは同じルールでマージされます。
- 両方の dict に同じパスのリストがある場合は、最初のリストを 2 番目に追加します。
- 両方の dict に同じパスを持つ単純な値 (または dict と non dict または list と non list) がある場合、最初の値が 2 番目の値で上書きされます。
- このキーと値を設定するよりも、パスを持つキーを持つ辞書が 1 つだけの場合。