【发布时间】:2021-03-20 00:02:30
【问题描述】:
-
我需要检查'Type'是'-'还是','
-
使用与“类型”相同的“值”创建一个新键
-
如果 '-' 那么它的 'or'
-
如果是 ',' 那么它的 '='
示例字典如下
{
'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' object has no attribute 'items'
【问题讨论】:
-
嗯,有几种方法可以实现这一点。你在这里有什么问题吗?你有遇到什么问题吗?由于这是张贴,这是一个任务而不是一个有效的问题
-
@HansT Got error AttributeError: 'str' object has no attribute 'items'
-
Rules 1有一个嵌套字典。 -
@jizhihaoSAMA 我把 l['value'] = l['Type'] 放在嵌套字典中
-
在你的字典中,
print(a['RULES'])给出{ 'rule1': { 'Range': '0', 'Type': '0-10' }}。使用print(a['rule2'])给出{ 'Range': '1-10', 'Type': '0,10', }。结构不一样。
标签: python dictionary