我正在尝试将一个分隔字符串的键值对解析为dict
。
# a:1,b:2,c:3
item.split(':') for item in str.split(','))
但是,当字符串包含不正确的格式化值而没有:
时,可能会出现这种情况,例如下面示例中的4
:
# a:1,b:2,c:3,4,e:5
这会导致上面的代码中断,出现错误ValueError: dictionary update sequence element #3 has length 1; 2 is required
我想为这种情况引入一个if
条件,这样在迭代过程中,如果遇到任何这样的值,理想情况下应该将其分配给一个默认键,例如x
,即x:4
。
我怎么能把这个条件内联我上面的代码?
2条答案
按热度按时间xriantvc1#
你可以根据一些众所周知的前缀构造一个默认键,并在其后面附加一个不断增加的数字。类似这样:
输出:
注:
输入字符串与问题中的字符串不同,以显示字符串中的两个错误条目以及输出将受到的影响
jdgnovmf2#
您可以将默认值添加到每个项目,并获取
split
的最后2个结果: