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

使用eval创建日期戳遇NameError及生成日期字符串方法咨询

解决eval中调用datetime的NameError并生成日期字符串

报错原因

你调用eval时传入的全局和局部命名空间都是空字典({}, {}),导致eval执行环境里找不到datetime这个名称,因此抛出NameError。

解决方案

1. 向eval传入datetime命名空间

如果必须使用eval,需要把datetime对象注入到eval的执行环境中:

from datetime import datetime
# 生成datetime对象
print(eval("{'datestamp': datetime.today()}", {'datetime': datetime}))

# 生成指定格式的日期字符串
result = eval("{'datestamp': datetime.today().strftime('%Y-%m-%d %H:%M:%S')}", {'datetime': datetime})
print(result)

strftime的格式参数可按需调整,比如%Y-%m-%d对应纯年-月-日格式。

2. 避免使用eval(推荐方案)

eval存在安全风险(执行不可信字符串可能引发代码注入),直接构造字典更安全简洁:

from datetime import datetime
# 生成日期字符串字典
result = {'datestamp': datetime.today().strftime('%Y-%m-%d %H:%M:%S')}
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:15:35