【发布时间】:2018-01-23 18:26:48
【问题描述】:
对于下面的字典,
a1 = {'a2':{'name':'mic\xa0\xa0', 'age':'12\xa0\xa0', 'college':True, 'contact':''},
'a3':{'name':'sen\xa0\xa0', 'age':'23\xa0\xa0','college':True,'contact':''}}
当在字典上循环并执行某些操作使bool 对象不可迭代时,如果从字典中删除布尔字段(college),则空字段(nonetype(contact) 对象不可迭代将出现错误)
def t1():
a4 = {k :
{k2: ''.join([i if 32 < ord(i) < 126 else " " for i in v2])
for k2, v2 in v.items()} for k, v in a1.items()
}
return a4
a5 = t1()
print(a5)
任何帮助将不胜感激。
【问题讨论】:
-
你想在这里达到什么目的?
-
v.items()给出内部字典(例如{'name':'mic\xa0\xa0', ...}。因此,每个v2是该字典中的每个值,其中一个是bool类型。因此,当您尝试使用for i in v2迭代bool类型会出现错误。 -
@anmaxvl 删除非 ASCII 字符
标签: python dictionary