簡體   English   中英

使用 Python 對字典項進行排序

[英]Sorting Dictionary Items Using 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")))

我在下面添加了錯誤。 我想對日期進行排序。

值錯誤

變量i在這里沒有意義,你可以這樣做

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

這將返回一個列表,因為 dict 在 Python(always,) 中沒有順序。 您不能對 dict 元素下任何命令。

要使用有序字典,您可以嘗試 Python 中的OrderedDict ,請參閱

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

我認為缺少的變量iresult 如果是這種情況,您可以執行以下操作:

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

在這里,我們首先將字典result["rates"]轉換為(key, value)形式的元組數組。 然后我們使用比較器 function 對其進行排序,該比較器通過訪問第一個元素( item[0] )從元組中獲取字符串日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM