在Python中从字典列表中删除引号

3
我该如何去除以下内容中的单引号,以便其被识别为一个字典对象列表而不是一个字符串对象列表?鉴于它是一个列表,我无法使用pd.replace。
['{"PLAYER":"Player Name","SALARY":"0000.00","OPP":"CI","POS":"BR","TEAM":"IT","SCHEDULE_ID":"40623","PLAYERID":"12322","GP":"5","TAR":"64","RZTAR":"6","POW TAR":"32.99%","WEEK 2":"11","WEEK 3":"14","WEEK 4":"9","WEEK 5":"19","ARDS":"545","YPT":"8.52","REC":"40","REC RATE":"62.50%"}']

你没有一个字典列表,而是一个字符串列表。该字符串看起来是一个JSON值,可以解码成一个字典。但是你需要知道该字符串的来源,以确保如何解释它。 - chepner
我知道我没有一个字典列表。字典列表是我的目标。如何做到这一点是我的问题,@Ajax1234在下面回答了我的问题。我希望将那个字符串列表视为一个字典。为了做到这一点,我需要从列表中的每个可能是字典的单词周围删除单引号。 "ast"解决方案完美地解决了这个问题。 - toussaint31
2个回答

2
你可以使用 ast.literal_eval:
import ast
s = ['{"PLAYER":"Player Name","SALARY":"0000.00","OPP":"CI","POS":"BR","TEAM":"IT","SCHEDULE_ID":"40623","PLAYERID":"12322","GP":"5","TAR":"64","RZTAR":"6","POW TAR":"32.99%","WEEK 2":"11","WEEK 3":"14","WEEK 4":"9","WEEK 5":"19","ARDS":"545","YPT":"8.52","REC":"40","REC RATE":"62.50%"}']
final_s = [ast.literal_eval(i) for i in s]

输出:

[{'SALARY': '0000.00', 'REC RATE': '62.50%', 'OPP': 'CI', 'YPT': '8.52', 'TAR': '64', 'GP': '5', 'PLAYERID': '12322', 'WEEK 3': '14', 'POS': 'BR', 'ARDS': '545', 'WEEK 2': '11', 'PLAYER': 'Player Name', 'SCHEDULE_ID': '40623', 'POW TAR': '32.99%', 'WEEK 4': '9', 'TEAM': 'IT', 'RZTAR': '6', 'REC': '40', 'WEEK 5': '19'}]

这个解决方案完美地运行了。我能够轻松地完成我的下一步,即将(现在的)字典列表转换为数据框。 - toussaint31

1

只需使用eval()实现该目的。

s=['{"PLAYER":"PlayerName","SALARY":"0000.00","OPP":"CI","POS":"BR","TEAM":"IT","SCHEDULE_ID":"40623","PLAYERID":"12322","GP":"5","TAR":"64","RZTAR":"6","POW TAR":"32.99%","WEEK 2":"11","WEEK 3":"14","WEEK 4":"9","WEEK 5":"19","ARDS":"545","YPT":"8.52","REC":"40","REC RATE":"62.50%"}']

s = [eval(item) for item in s]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接