【问题标题】:Remove quotes from list of dictionaries in python从python中的字典列表中删除引号
【发布时间】:2018-04-10 00:57:03
【问题描述】:

如何从以下内容中删除单引号,以便将其识别为与一个字符串对象列表相对的一个字典对象列表?鉴于它是一个列表,我不能使用 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 值,可以将其解码为字典。不过,您需要知道字符串的来源,才能确定如何解释它。
  • 我知道我没有字典列表。字典列表是我的目标。如何做到这一点是@Ajax1234 在下面回答的我的问题。我希望将该字符串列表视为字典。为了做到这一点,我需要从列表中每个可能的字典中删除单引号。 “ast”解决方案效果很好。

标签: python list dictionary replace


【解决方案1】:

你可以使用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'}]

【讨论】:

  • 这个解决方案效果很好。我能够轻松完成下一步,即将(现在)字典列表转换为数据框。
【解决方案2】:

只使用 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]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 2012-01-15
    相关资源
    最近更新 更多