首页 > 解决方案 > 如何在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)

标签: pythonpython-3.xdatedatetime

解决方案


我认为这是你想使用 .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

推荐阅读