如何替换列表中不需要的额外引号字符


l2=[{'entities': ['(183,187,"PADS"),(391,400,"BRAKE JOB"), 
(378,383,"FRONT")']}]

我尝试的是转换成字符串,但转换回列表很糟糕

l2 = str(l2).replace("['",'[').replace("']",']')

我需要什么

l2=[{'entities': [(183,187,"PADS"),(391,400,"BRAKE JOB"),(378,383,"FRONT")]]

删除周围的单引号

[(183,187,"PADS"),(391,400,"BRAKE JOB"),(378,383,"FRONT")]

我对用re.sub代替它一无所知,并且有一个没有引号的列表。

entities的值转换为一个字符串,该字符串可以被视为以|为分隔符的列表。

然后,对于除以|的每个元素,都包含一个用逗号,分隔的sub_list,然后只创建一个这些元素的列表,根据值是否可以是整数isdigit(),可以取一个字符串或整数

l2 = [{'entities': ['(183,187,"PADS"),(391,400,"BRAKE JOB"), (378,383,"FRONT")']}]
list_string = l2[0]['entities'][0].replace("),",'|').replace('(','').replace(')','').replace(" ",'').replace('"','')
a = [tuple([int(x) if x.isdigit() else x for x in i.split(',')]) for i in list_string.split('|')]
l2[0]['entities'] = a
print(l2)
>>> [{'entities': [(183, 187, 'PADS'), (391, 400, 'BRAKEJOB'), (378, 383, 'FRONT')]}]

最新更新