我需要检查“Type”是否为“-”或“,”
创建一个与“类型”相同的“值”的新键
如果“-”,则其为“或”
如果是“”,那么它的“=”
下面是示例词典
{
'RULES': {
'rule1': {
'Range': '0',
'Type': '0-10'
}
},
'rule2': {
'Range': '1-10',
'Type': '0,10',
},
'rule3': {
'Range': '11-50',
'order': '3'
}
}
预料之外
{
'RULES': {
'rule1': {
'Range': '0',
'Type': '0-10',
'value':'0-10',
'operator' :'or'
}
},
'rule2': {
'Range': '1-10',
'Type': '0,10',
'value':'0,10',
'operator':'='
},
'rule3': {
'Range': '11-50',
'order': '3'
}
}
代码
for i,j in a.items():
for k,l in j.items():
l['value'] = l['Type']
if '-' in l['Type']:
l['operator'] = '='
if ',' in l['Type']:
l['operator'] = 'in'
获取错误AttributeError:'str'对象没有属性'items'
为了提高您的编码技巧,您可能希望正确地使用if语句,避免使用多个For语句(改用递归函数)。这将允许您避免角落案例导致问题
因此,您将定义一个函数来执行dict对象的递归更新,条件是键“Type”必须可用
然后,要更新字典,只需将函数应用于输入:
试试这个
输出
为了便于阅读
代码如下:
相关问题 更多 >
编程相关推荐