0

结构如下:

{"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”的值中删除(如果存在)“E”的输出应如下所示

即 "E":"7,6,(5)**" ---> "E":"7,6,5"

  "E":"3, 1*" ---> "E":"3,1"



 "E":"1,2,3" stays the same

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

我所做的是

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

这让我得到一个字符串的结果。现在,如果我希望它存储为一个整数值,如果只有一个数字,那么应该怎么做?我试过

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

获取 ValueError: invalid literal for int() with base 10: ''

提前致谢

4

3 回答 3

4

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

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

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

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

import json
data = json.loads(json_string)
于 2013-03-04T20:57:52.997 回答
3

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

import re
for a in data.values():
    for d in a:
        d['E'] = re.sub(r'[^\d,]', '', d['E'])
于 2013-03-04T21:01:03.273 回答
0

使用解决

 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
于 2013-03-05T17:32:28.853 回答