Python 使用棉花糖模式将字典加载到多个字典中
我想这样做: 我有一个Python 使用棉花糖模式将字典加载到多个字典中,python,dictionary,marshmallow,Python,Dictionary,Marshmallow,我想这样做: 我有一个命令: x = { 'D': 'abc', 'E': 'def', 'F': 'asd', 'G': 'gef' } 我希望棉花糖模式将其转换为dict,如下所示: y = { 'var1': { 'D': 'abc', 'E': 'def', 'F': 'asd' }, 'var2': { 'G': 'gef' } } Update:考虑到我还有另
命令
:
x = {
'D': 'abc',
'E': 'def',
'F': 'asd',
'G': 'gef'
}
我希望棉花糖模式将其转换为dict
,如下所示:
y = {
'var1': {
'D': 'abc',
'E': 'def',
'F': 'asd'
},
'var2': {
'G': 'gef'
}
}
Update:考虑到我还有另一个DICT定义了密钥应该在哪里提交
s = {
'var1': ['D', 'E', 'F', 'I'],
'var2': ['G', 'A']
}
我无法找出使此工作正常的模式。不是正式的,不是。这是一个记录在案的错误/缺少的功能: 但是,有非常简单的解决方法。这是我的(也张贴在该帖中):
来自棉花糖导入字段
类自嵌套(字段嵌套):
def get_值(self、obj、attr、accessor=None、default=missing):
返回obj
现在,您可以使用这个自嵌套
类,就好像它是一个常规的嵌套
,但它允许您访问父字段
例如,您可以这样做:
来自棉花糖导入字段
从marshmallow.schema导入架构
类Var1Schema(Schema):
D=字段。字符串()
E=fields.String()
F=字段。字符串()
类Var2Schema(模式):
G=fields.String()
类MySchema(模式):
var1=自嵌套(Var1Schema())
var2=自嵌套(Var2Schema())
不是正式的,不是。这是一个记录在案的错误/缺少的功能:
但是,有非常简单的解决方法。这是我的(也张贴在该帖中):
来自棉花糖导入字段
类自嵌套(字段嵌套):
def get_值(self、obj、attr、accessor=None、default=missing):
返回obj
现在,您可以使用这个自嵌套
类,就好像它是一个常规的嵌套
,但它允许您访问父字段
例如,您可以这样做:
来自棉花糖导入字段
从marshmallow.schema导入架构
类Var1Schema(Schema):
D=字段。字符串()
E=fields.String()
F=字段。字符串()
类Var2Schema(模式):
G=fields.String()
类MySchema(模式):
var1=自嵌套(Var1Schema())
var2=自嵌套(Var2Schema())
我不明白为什么D'
,'E'
和'F'
应该在这里属于'var1'
和'G'
属于'var2'
。基于什么,你决定把这些放在哪里?>>我无法找到使之工作的模式。是的,我也是。)@willemvanonsen:我已经更新了question@DragonSlayer:模式是否可以级联?或者它只是一个级别?没有模式,您只需从一个字典中提取项目,并根据其他文件中提供的设置将其拆分为多个字典。我不明白为什么D'
,'E'
和'F'
应该属于'var1'
和'G'
到'var2'
。基于什么,你决定把这些放在哪里?>>我无法找到使之工作的模式。是的,我也是。)@willemvanonsen:我已经更新了question@DragonSlayer:模式是否可以级联?或者它只是一个级别?并没有模式,您只需从一个字典中获取项,然后根据其他文件中提供的设置将其拆分为多个字典。