我需要遍历字典中的每个值并将''替换为None。我做错了什么?
data = {'phone': '', 'email': 'joe@hotmail.com', 'fname': 'Joe', 'zip_code': '', 'address2': '', 'address1': '', 'city': '', 'state': '', 'lname': 'Yang'}
clean = {k: v=None for k, v in data.items() if v == ''}
结果
clean = {k: v=None for k, v in data.items() if v == ''}
^
SyntaxError: invalid syntax
答案 0 :(得分:3)
您无法在字典理解中执行作业。
你想要的是一个三元运算符,用None
替换空字符串值,并按原样返回其他值:
clean = {k: None if v == '' else v for k, v in data.items()}
# ^^^^^^^^^^^^^^^^^^^^^^
参考:
答案 1 :(得分:2)
你想使用速记-if作为值表达式,而不是条件理解(实际上它将完全删除键)。
data = {'phone': '', 'email': 'joe@hotmail.com', 'fname': 'Joe', 'zip_code': '', 'address2': '', 'address1': '', 'city': '', 'state': '', 'lname': 'Yang'}
clean = {k: None if v == '' else v for k, v in data.items()}