python - 如何在python中更改字典中键的名称
问题描述
dict_values(
[{'2020-01-01': 6756.5667752718,
'2020-02-01': 6977.2782868586,
'2020-03-01': 8345.9643411143,
'2020-04-01': 10279.6946142039,
'2020-05-01': 950.3290972804},
{'2020-01-01': 807.2855755452,
'2020-02-01': 807.2872293898,
'2020-03-01': 1006.1969492287,
'2020-04-01': 1006.262393842,
'2020-05-01': 151.882531899}])
我想更改键的值,例如 INPUT '2020-01-01': 6756.5667752718 ... OUTPUT = 'JAN' : 6756.5667752718 我有一个转换日期的函数
所以我必须使用以下功能重命名键。
MONTHS = ['JAN', 'FEB', 'MAR', 'APR', 'MAY',
'JUN','JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']
def date_convert(s):
y = s[:4]
m = int(s[5:-3])
d = s[8:]
month_name = MONTHS[m-1]
result= month_name
return result
s = '2020-06-24'
r = date_convert(s)
解决方案
我认为这是你想使用 .pop() 函数的地方,它是一种从容器中删除项目的方法,但如果你想用它做某事,它也会返回删除的项目。
MONTHS = ['JAN', 'FEB', 'MAR', 'APR', 'MAY','JUN','JUL', 'AUG', 'SEP', 'OCT', 'NOV', 'DEC']
def date_convert(s):
y = s[:4]
m = int(s[5:-3])
d = s[8:]
month_name = MONTHS[m-1]
result= month_name
return result
d = {'2020-01-01': 6756.5667752718, '2020-02-01': 6977.2782868586, '2020-03-01': 8345.9643411143, '2020-04-01': 10279.6946142039, '2020-05-01': 950.3290972804}
for key in list(d):
value = d.pop(key)
new_key = date_convert(key)
d[new_key] = value
推荐阅读
- python - ufunc 的循环不支持没有可调用日志方法的类型方法的参数 0
- python - 在一个应用程序中导入 qgis.core 和 tkinter
- javascript - 映射对象数组中属性中的项
- docker - Docker 构建错误 [错误 [test_app 13/15] RUN easy_install pip]
- postgresql - Postgres SQL 恢复权限被拒绝创建和更改数据库
- javascript - 子菜单全宽
- c - 如何在tensorflow c api中执行转置或argmax等操作
- ios - 崩溃:崩溃:com.apple.main-thread EXC_BREAKPOINT 0x000000010063e990
- sql - 如何将字符串中的多个变量传递到查询中
- javascript - 我无法从表单返回正确的对象数组