Python 如何从包含单个键的多个值的字典中提取值?

Python 如何从包含单个键的多个值的字典中提取值?,python,dictionary,Python,Dictionary,我有一本字典 d={4: {Timestamp('1997-07-02 00:00:00'): -12.134525612322019, Timestamp('1997-07-04 00:00:00'): -3.663247640220524, Timestamp('1997-07-07 00:00:00'): -30.649875958814032, Timestamp('1997-07-08 00:00:00'): 17.924305289599648, Timestamp(

我有一本字典

d={4: {Timestamp('1997-07-02 00:00:00'): -12.134525612322019,
  Timestamp('1997-07-04 00:00:00'): -3.663247640220524,
  Timestamp('1997-07-07 00:00:00'): -30.649875958814032,
  Timestamp('1997-07-08 00:00:00'): 17.924305289599648,
  Timestamp('1997-07-10 00:00:00'): -25.828099872622467}}
如何仅提取d的datetime值? 另外,由于我实际上有一个嵌套字典,并且希望提取每个键的日期时间值,您有什么建议?

您可以尝试以下方法:

列表(d[4].keys())
>>>[时间戳('1997-07-02 00:00:00'),
时间戳('1997-07-04 00:00:00'),
时间戳('1997-07-07 00:00:00'),
时间戳('1997-07-08 00:00:00'),
时间戳('1997-07-10 00:00:00')]
或者,如果您想将每个时间戳转换为datetime,您可以这样做

datetimes=[t.to_pydatetime(),用于列表中的t(d[4].keys())]
日期时间
>>>[datetime.datetime(1997,7,2,0,0),
datetime.datetime(1997,7,4,0,0),
datetime.datetime(1997,7,7,0,0),
datetime.datetime(1997,7,8,0,0),
datetime.datetime(1997,7,10,0,0)]
编辑:

如果您有这样的长嵌套字典:

d={1:{时间戳('1997-07-02 00:00:00'):-12.134525612322019,
时间戳('1997-07-04 00:00:00'):-3.663247640220524,
时间戳('1997-07-07 00:00:00'):-30.649875958814032,
时间戳('1997-07-08 00:00:00'):17.924305289599648,
时间戳('1997-07-10 00:00:00'):-25.828099872622467},
2:{时间戳('1997-07-02 00:00:00'):-12.134525612322019,
时间戳('1997-07-04 00:00:00'):-3.663247640220524,
时间戳('1997-07-07 00:00:00'):-30.649875958814032,
时间戳('1997-07-08 00:00:00'):17.924305289599648,
时间戳('1997-07-10 00:00:00'):-25.828099872622467},
3:{时间戳('1997-07-02 00:00:00'):-12.134525612322019,
时间戳('1997-07-04 00:00:00'):-3.663247640220524,
时间戳('1997-07-07 00:00:00'):-30.649875958814032,
时间戳('1997-07-08 00:00:00'):17.924305289599648,
时间戳('1997-07-10 00:00:00'):-25.828099872622467}
您需要每个键的日期时间,然后您可以像这样迭代整个dict:

datetimes=[]
对于输入d:
对于d[键]中的时间戳:
datetime=timestamp.to_pydatetime()
datetimes.append(datetime)
日期时间
>>>[datetime.datetime(1997,7,2,0,0),
datetime.datetime(1997,7,4,0,0),
datetime.datetime(1997,7,7,0,0),
datetime.datetime(1997,7,8,0,0),
datetime.datetime(1997,7,10,0,0),
datetime.datetime(1997,7,2,0,0),
datetime.datetime(1997,7,4,0,0),
datetime.datetime(1997,7,7,0,0),
datetime.datetime(1997,7,8,0,0),
datetime.datetime(1997,7,10,0,0),
datetime.datetime(1997,7,2,0,0),
datetime.datetime(1997,7,4,0,0),
datetime.datetime(1997,7,7,0,0),
datetime.datetime(1997,7,8,0,0),
datetime.datetime(1997,7,10,0,0)]
或者,如果您想要一个具有相同键但值作为日期时间列表的全新dict,可以执行以下操作:

datetime_dict={}
对于输入d:
datetime_dict[key]=[ts.to_pydatetime()(对于d中的ts[key]]
日期时间
>>>{1:[datetime.datetime(1997,7,2,0,0),
datetime.datetime(1997,7,4,0,0),
datetime.datetime(1997,7,7,0,0),
datetime.datetime(1997,7,8,0,0),
datetime.datetime(1997,7,10,0,0)],
2:[datetime.datetime(1997,7,2,0,0),
datetime.datetime(1997,7,4,0,0),
datetime.datetime(1997,7,7,0,0),
datetime.datetime(1997,7,8,0,0),
datetime.datetime(1997,7,10,0,0)],
3:[datetime.datetime(1997,7,2,0,0),
datetime.datetime(1997,7,4,0,0),
datetime.datetime(1997,7,7,0,0),
datetime.datetime(1997,7,8,0,0),
datetime.datetime(1997,7,10,0,0)]}

这是否回答了您的问题?既然我实际上有一个嵌套字典,并且想要为每个键提取日期时间值,您会有什么建议?我在上面的解释中添加了一个编辑。它现在回答你的问题了吗?