在python中从字典中的值中删除字符

2024-09-29 23:32:27 发布

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

结构如下:

{"A": [{
            "A": "",
            "B": "2",
            "C": "3QWE",
            "D": 1800,
            "E": null,
            "F": null
        },
        {
            "A": "",
            "B": "2",
            "C": "XYT17",
            "D": 1800,
            "E": "3, 1*",
            "F": null
        },
        {
            "A": "",
            "B": "N8HTY",
            "C": "XYT17",
            "D": 1800,
            "E": "7,6,(5)**",
            "F": null
        },
        {
            "A": "",
            "B": "1AJ21",
            "C": "XYT17",
            "D": 1800,
            "E": "7,6,5",
            "F": null
        }
       ],
   "B": [{
            "A": "",
            "B": "LS231",
            "C": "XYT17",
            "D": 1800,
            "E": "1,2,3",
            "F": null
        },
        {
            "A": "",
            "B": "22GHE",
            "C": "XYT17",
            "D": 1800,
            "E": "3, 1*",
            "F": null
        }
      ]
}

我希望从键“E”的值中删除“*”和“(”and“)”(如果存在) “E”的输出应如下所示

即“e”:“7,6,(5)**”-->;“e”:“7,6,5”

^{pr2}$

另外,如果在处理“1*”之后,我的最终输出只有一个数字,比如“1”,那么在更新值之前,如何将其转换为整数。在

我所做的是

x=copy.copy(item['E']) 
for char in '*':              
  x = x.replace(char,'') 
item['E']=x

这将得到字符串形式的结果。 现在如果我想把它存储为一个整数值,如果只有一个数字,那么应该怎么做? 我试过了

项目['E']=int(x)

获取值错误:基为10的int()的文本无效:“”

提前谢谢


Tags: andgtfor数字整数item结构null
3条回答

这将从E中删除任何不是数字或逗号的内容:

import re
for a in data.values():
    for d in a:
        d['E'] = re.sub(r'[^\d,]', '', d['E'])

使用解决

 x=copy.copy(item['E']) 
 for char in '()*':              
      x = x.replace(char,'') 


 z = len(x)
 if z == 1:
      item['E'] = int(x)
  else:
     item['E'] = x

假设当前结构存储在名为data的变量中:

for arr in data.values():
    for item in arr:
        item['E'] = item['E'].replace('(', '').replace(')', '').replace('*', '')

这假设结构是一致的,"E"将始终是字典中的键。在

如果这是一个JSON字符串而不是Python字典,那么首先需要解析JSON:

^{pr2}$

相关问题 更多 >

    热门问题