使用Python对字典项进行排序

2024-09-24 22:31:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个问题

import requests
import json
from datetime import datetime
result = requests.get("https://api.exchangeratesapi.io/history?start_at=2020-12-1&end_at=2020-12-13&symbols=USD,TRY&base=USD")
result = json.loads(result.text)
print(result["rates"])
print(sorted(i, key=lambda date: datetime.strptime(date, "%Y-%m-%d")))

我在下面添加了错误。我想把日期分类

ValueError


Tags: fromhttpsioimportapijsongetdatetime
2条回答

我认为缺少的变量iresult?如果是这种情况,您可以这样做:

sorted_rates = dict(sorted(
  result["rates"].items(),
  key=lambda item: datetime.strptime(item[0], "%Y-%m-%d")))

这里,我们首先将字典result["rates"]转换为(key, value)形式的元组数组。然后我们使用comparator函数对其进行排序,该函数通过访问第一个元素(item[0])从元组中获取字符串日期

变量i在这里没有意义,您可以这样做

ra = result["rates"]
ra = sorted(ra, key=lambda date: datetime.strptime(date, "%Y-%m-%d"))
print(ra)

这将返回一个列表,因为dict在Python中没有顺序(总是!),所以不能对dict元素进行任何排序

要使用有序dict,可以尝试使用Python中的OrderedDict,请参阅

https://docs.python.org/3/library/collections.html#collections.OrderedDict

相关问题 更多 >