你能告诉我有没有更好的方法来写下面的内容来避免if和else的情况。我有一个输入结构如下
results=[
{
"id":"11",
"category":"Employee",
"name":"Employe11",
"type":"contractor"
},
{
"id":"11",
"category":"Employer",
"name":"company1",
"count":800
},
{
"id":"11",
},
{
"name":"Employe11"
}
]
我必须创建一个新的json对象,我已经编写了下面的代码,并按照预期返回结果,但我认为如果检查的if太多,是否有任何方法可以避免它,主要是if条件是添加,并且仅当值存在时才更新字典
resltlist=[]
for x in results:
details={}
if x.get('id', ''):
details.update({'unique_id':x['id']})
if x.get('name', ''):
details.update({'name':x['name'])
if x.get('type', ''):
details.update({'emp_type':x['type'])
if x.get('count', ''):
details.update({'count':x['count'])
if x['category']=="Employer":
if x.get('count', ''):
details.update({'count':x['count']})
resultlist.append(details)
return {"results":resultlist}
欢迎提出改进此代码的建议,以及我是否可以减少if语句,谢谢
问候
您可以添加另一个循环,将结果映射到详细信息字典
小心:慢。不适合>;10k记录或在线制作使用。
如果要进行一些中间的数据分析步骤,还可以使用pandas
DataFrame()
构造函数丢弃NaN项的输出(与给定的
resultlist
相同,但顺序不同)输出项:
一种直接且完全自动化的方式:
结果
相关问题 更多 >
编程相关推荐