繁体   English   中英

如何将存储在变量中的函数结果存储为字符串?

[英]How can I store the result of a function stored in variable as a string?

我正在使用boto3 python sdk开发用于AWS快照的开源脚本。

我有一个返回json的函数,其中包含一个函数:

datetime.datetime(2017, 11, 3, 21, 2, 27, tzinfo=tzlocal())

当我存储json的结果时,它将存储该函数字符串,而不是该函数的结果。

如何获取python3执行该功能?

(当我打印该字典时间时,这很奇怪,它显示正确)

这是我的字典的样子:

{'snap-05c84': datetime.datetime(2017, 11, 3, 22, 4, 48, tzinfo=tzlocal()), 'snap-08bcb': datetime.datetime(2017, 11, 3, 21, 2, 27, tzinfo=tzlocal())}

构建字典的代码是:

for snap in snaps['Snapshots']:
  snap_id=snap['SnapshotId']
  start_time=snap['StartTime']
  snap_times[snap_id]=start_time

提前致谢!!!

您可以使用eval执行代码并获取结果。

但是,当我查看您的示例时,为什么将那个datetime对象作为字符串? 也许您希望在那里已经拥有价值。 您可以为此使用处理程序:

import datetime
import json

def datetime_handler(x):
    if isinstance(x, datetime.datetime):
        return x.isoformat()
    raise TypeError("Unknown type")

json.dumps(data, default=datetime_handler)

如果您不喜欢isoformat,则可以使用strftime

如果我对您的理解正确,那么您有一个函数名称,该名称存储为字符串。 如果是这种情况,您可以使用此处提供的解决方案,从带有函数名称的字符串中调用模块的函数以使用该函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM