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

如何遍历字典并将字符串格式日期转换为Timestamp(时间戳)

解决字典中日期字符串与Timestamp类型的统一处理问题

首先,咱们先明确你的需求:遍历一个混合了pandas.Timestamp对象和日期字符串的字典,遇到字符串格式的日期就把它转换成Timestamp类型,已经是Timestamp的直接打印输出。

你的原代码存在语法和逻辑上的问题,我帮你修正并优化了,下面是完整的可运行代码:

import pandas as pd

ts = pd.Timestamp('2017-01-01T12')
date = '2017-01-01'
timedict = { "timestamp": ts, "date": date }

for key, val in timedict.items():
    if isinstance(val, str):
        # 将字符串日期转换为Timestamp类型
        converted_val = pd.to_datetime(val)
        print(converted_val)
    else:
        # 已经是Timestamp类型,直接打印
        print(val)

关键修正点说明:

  • 类型判断修正:原代码里if val == #string:是完全错误的语法,Python中判断对象类型的标准方式是用isinstance(val, str)来识别字符串类型。
  • 转换逻辑修正:你之前写的val.strftime('%d.%m.%Y')是把Timestamp转成指定格式的字符串,和需求完全相反。要把字符串转成Timestamp,应该用pd.to_datetime()方法,它能自动识别绝大多数常见的日期字符串格式。
  • 结果输出修正:转换后的结果需要用变量保存后再打印,否则原字符串不会被替换,你会发现输出还是原来的字符串内容。

运行这段代码后,你会得到两个Timestamp类型的输出:

2017-01-01 12:00:00
2017-01-01 00:00:00

如果需要把转换后的Timestamp输出成指定格式的字符串(比如dd.mm.YYYY),可以在打印时加上strftime()处理:

print(converted_val.strftime('%d.%m.%Y'))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 10:24:07