第二章 MeterSphere之Python脚本日期处理的坑
前言
在MeterSphere的前后置脚本中使用Python处理数据,结果发现控制台一直报错,说我函数中没有xxx属性等等,然后打印值的类型发现,使用的居然是Java中的包。以此来记录一下这个坑点。
提示:以下是本篇文章正文内容,下面案例可供参考
一、在MeterSphere前后置脚本中执行如下代码
import datetime
date = datetime.datetime.now().date()
log.info("1、"+str(type(date)))
def printTimeType():
date = datetime.datetime.now().date()
log.info("2、"+str(type(date))
printTimeType()
输出结果如下:
1、<type 'java.sql.Date'>
2、<class 'datetime.date'>
是不是很惊讶!!这是为什么!为什么啊!
如果不将datetime.datetime.now().date()放在方法体中,使用第一种声明的方式,则调用date.strftime("%Y-%m-%d")会报错:
AttributeError:'java.sql.Date' object has no attribute 'strftime' in <script> at line number 5
使用第二种方式就可以正确输出date。
总结
以后在metersphere中编写python的代码,尽量将变量定义在方法体中,这样才能正确使用Python的包。
文章讲述了在MeterSphere的前后置脚本中使用Python处理日期时遇到的Java包冲突问题,指出将datetime对象置于方法体内可以避免AttributeError,建议在MeterSphere中使用Python时注意变量作用域和类型转换。
3587

被折叠的 条评论
为什么被折叠?



