如何解决Python列表-如何评估并将json字符串值中的空格/空/空格替换为某些默认值?
假设,下面是输入列表,其中exp_date和qty字段为空白/空格/空。
Encoding
我们是否可以像下面这样写if / then / else-什么是正确/适当的语法?
input_lst = [
{
"id": "123456","product": "XYZ","exp_date": "","amount": "30.5","qty": "1"
},{
"id": "789012","product": "ABC","exp_date": "04/15/2020","amount": "22.57","qty": "3"
},{
"id": "56789","product": "AAA","exp_date": "03/29/2020","amount": "2","qty": " "
}
]
谢谢!
解决方法
您必须更改三元运算符的顺序:
output_lst = []
for dct in input_lst:
tmp_dct = dct.copy()
try:
#replace/default any blank/null/space values and convert to datetime
tmp_dct['exp_date'] = datetime.strptime('01/01/1900' if dct['exp_date'] == "" else dct['exp_date'],'%m/%d/%Y')
except:
pass
try:
#replace/default any blank/null/space values and convert to int
tmp_dct['qty'] = 1 if dct['qty'].strip() == '' else int(dct['qty'])
except:
pass
output_lst.append(tmp_dct)
print(output_lst)
您还必须注意字段qty
,在您的示例中该字段可以包含空格。在这种情况下,最好应用strip()
来删除开头和/或结尾的所有空格。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。