繁体   English   中英

使用Python插入InfluxDb错误:“ datetime.timedelta”对象没有属性“ total_seconds”

[英]Insert with Python into InfluxDb error: 'datetime.timedelta' object has no attribute 'total_seconds'

当我运行Python客户端以特定的时间戳将数据插入InfluxDb时,它将返回此错误: 'datetime.timedelta'对象没有属性'total_seconds' 我在github上找到了将方法total_seconds()定义为一些timeutils.py文件的内容。 这是代码:

from datetime import datetime

def total_seconds(td):
    # Keep backward compatibility with Python 2.6 which doesn't have
    # this method
    if hasattr(td, 'total_seconds'):
        return td.total_seconds()
    else:
        return (td.microseconds + (td.seconds + td.days * 24 * 3600) * 10**6) / 10**6

def convert_to_epoch(timestamp):
    diff = (timestamp - datetime(1970, 1, 1))
    seconds = int(diff.total_seconds())
    seconds = int(total_seconds(diff))
    return seconds

我找不到timeutils.py。 Python版本是2.6,我无法更新到2.7。 我应该在哪里添加该功能以使客户端正常工作?

我只是将其添加到发生错误的相同文件中。 这是一个独立的函数,不是类方法,因此您必须将调用行从

seconds = int(diff.total_seconds())

seconds = int(total_seconds(diff))

或类似的东西。

暂无
暂无

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

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