婷婷同学_
解决方案另一种选择是使用pandas库对字典进行排序。现在,这可能是有争议的,因为有时您可能不需要引入熊猫,但是,这取决于您正在处理的问题/需求的类型。使用熊猫通常也更容易可视化和处理数据。我会留给你来决定你是否想使用 pandas 来完成这个任务,同时我会留下一个注释,说明你如何轻松地可视化结果并用 pandas 对其进行排序。import pandas as pdfor obj in player_stats: obj['Tournaments'] = pd.DataFrame(obj['Tournaments']).sort_values(['Date']).T.to_dict(orient='records')加载字典列表并对其进行排序一线解决方案是这样的:pd.DataFrame(obj['Tournaments']).sort_values(['Date']).to_dict(orient='records')让我们分解它以了解它在做什么。A、排序DataFramedf = pd.DataFrame(obj['Tournaments']).sort_values(['Date'])print(df) # print sorted dataframeB. 将 the 转换DataFrame为 adict# convert DataFrame to dictd = df.to_dict(orient='records') # print dictionary using json libraryprint(json.dumps(d, indent=2)输出:[{'Date': '01-09-2020', 'SG_Putting': 0.99, 'Scrambling': '61.90', 'Total_Putts_GIR': 85, 'Tournament': 'Sony_Open'}, {'Date': '01-30-2020', 'SG_Putting': 1.1, 'Scrambling': '68.75', 'Total_Putts_GIR': 93, 'Tournament': 'Waste_Management'}, {'Date': '02-20-2020', 'SG_Putting': -0.26, 'Scrambling': '64.71', 'Total_Putts_GIR': 70, 'Tournament': 'WGC_Mexico'}, {'Date': '06-11-2020', 'SG_Putting': -1.45, 'Scrambling': '57.14', 'Total_Putts_GIR': 40, 'Tournament': 'Charles_Schwab'}, {'Date': '06-18-2020', 'SG_Putting': 1.65, 'Scrambling': '73.68', 'Total_Putts_GIR': 82, 'Tournament': 'RBC_Heritage'}, {'Date': '07-02-2020', 'SG_Putting': 0.34, 'Scrambling': '66.67', 'Total_Putts_GIR': 92, 'Tournament': 'Rocket_Mortgage'}, {'Date': '10-08-2019', 'SG_Putting': 1.19, 'Scrambling': '83.33', 'Total_Putts_GIR': 101, 'Tournament': 'Shriners_Hospital_for_Children_Open'}]虚拟数据为了可重复性,我更愿意记录问题中提供的样本/虚拟数据以及用于答案的数据。obj = { "Tournaments": [ { "Scrambling": "61.90", "Total_Putts_GIR": 85, "SG_Putting": 0.99, "Tournament": "Sony_Open", "Date": "01-09-2020" }, { "Scrambling": "68.75", "Total_Putts_GIR": 93, "SG_Putting": 1.1, "Tournament": "Waste_Management", "Date": "01-30-2020" }, { "Scrambling": "64.71", "Total_Putts_GIR": 70, "SG_Putting": -0.26, "Tournament": "WGC_Mexico", "Date": "02-20-2020" }, { "Scrambling": "57.14", "Total_Putts_GIR": 40, "SG_Putting": -1.45, "Tournament": "Charles_Schwab", "Date": "06-11-2020" }, { "Scrambling": "73.68", "Total_Putts_GIR": 82, "SG_Putting": 1.65, "Tournament": "RBC_Heritage", "Date": "06-18-2020" }, { "Scrambling": "66.67", "Total_Putts_GIR": 92, "SG_Putting": 0.34, "Tournament": "Rocket_Mortgage", "Date": "07-02-2020" }, { "Scrambling": "83.33", "Total_Putts_GIR": 101, "SG_Putting": 1.19, "Tournament": "Shriners_Hospital_for_Children_Open", "Date": "10-08-2019" } ]}