如何在清理字典键值对后重新创建字典列表

2024-05-20 23:59:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含80K条记录的字典列表,格式如下-

{'system_name': 'aapvir004', 'fdc_inv_sa_team': 'X2AIX_GDSS\n'}
{'system_name': 'aapvir003', 'fdc_inv_sa_team': 'X2AIX_GDSS\n'}
{'system_name': 'aapvir002', 'fdc_inv_sa_team': 'X2AIX_GDSS\n'}
{'system_name': 'abpvir004', 'fdc_inv_sa_team': 'X2AIX_GDSS\n'}
{'system_name': 'nappir002.1dc.com', 'fdc_inv_sa_team': 
 'LAC.BRAZIL.GIO.LINUX'}
{'system_name': 'nappir001.1dc.com', 'fdc_inv_sa_team': 
 'LAC.BRAZIL.GIO.LINUX'}
{'system_name': 'aapvtl001', 'fdc_inv_sa_team': 'X2AIX_GDSS\n'}
{'system_name': 'nbpvwb007.1dc.com', 'fdc_inv_sa_team': 
 'LAC.BRAZIL.GIO.LINUX'}

方法getResource()执行数据清理。你知道吗

def getResource(self):
     try:
        #import pdb; pdb.set_trace()
        for row in data:
            sys_name = [row["system_name"],]
            team = [row["fdc_inv_sa_team"]]
            arg1 = re.sub('.1DC.com|.1dc.com|.1dc.COM |.1DC.COM\\b', '', str(sys_name))
            arg2 = str(team).replace('\\n', '')
            arg1 = str(arg1.strip('"[]"'))
            arg2 = str(str(arg2).strip("[]"))

我想在方法中使用arg1和arg2重新创建字典列表并返回它。你能提出一个可行的方法吗?你知道吗


Tags: namecomsadcsystemteambrazilarg1
2条回答

在循环外创建一个列表,使用arg1arg2向其中添加字典,然后返回它。你知道吗

output = []
for row in data:
    # ...
    arg1 = ...
    arg2 = ...
    output.append({'system_name': arg1, 'fdc_inv_sa_team': arg2})
return output

可以使用索引在数组中循环

for i in range(len(l)):
  sys_name = l[i]["system_name"]
  team = l[i]["fdc_inv_sa_team"]

  # do whatever
  sys_name = re.sub('.1DC.com|.1dc.com|.1dc.COM |.1DC.COM\\b', '', str(sys_name))
  sys_name = str(sys_name.strip('"[]"'))
  team = str(team).replace('\n', '')
  team = str(str(team).strip("[]"))

  l[i]["system_name"] = sys_name
  l[i]["fdc_inv_sa_team"] = team

注意:这将更改阵列的位置。意思是不创建一个新列表,而是修改列表本身

相关问题 更多 >