You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python字典日期键转换时执行pop操作报错求助

问题解决:字典日期键格式转换报错修复

错误原因

你直接遍历原字典的键并修改字典结构,导致循环过程中字典的键集合动态变化。当新生成的%d%m%y格式键(比如030323)被加入字典后,循环会把这些新键也当成待处理对象,而这类键无法用%d%b%y格式解析,因此抛出ValueError。

修复代码

先把原字典的键转换成静态列表,再遍历这个列表处理,避免遍历过程中字典结构变化干扰循环:

import datetime

price={'10MAR23': 113.49999999999999,
 '3MAR23': 19.10000000000001,
 '25FEB23': 19.100000000000012,
 '28APR23': 3.5,
 '26FEB23': 0.4,
 '31MAR23': 27.5,
 '17MAR23': 3.1}

# 先获取原字典所有键的静态列表
original_keys = list(price.keys())

for i in original_keys:
    new_key = datetime.datetime.strptime(i, '%d%b%y').strftime('%d%m%y')
    price[new_key] = price.pop(i)

print(price)

代码说明

  • list(price.keys()):将原字典的键转换成静态列表,确保遍历的是初始状态下的所有旧键,不会受后续字典修改的影响。
  • 遍历静态列表处理每个旧键,解析成日期对象后再格式化为目标字符串,最后用pop移除旧键并添加新键到字典中。

内容的提问来源于stack exchange,提问作者Madan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 00:21:26