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

时间:2017-03-07 10:28:28

标签: python datetime timestamp

当我运行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。我应该在哪里添加该功能以使客户端工作?

1 个答案:

答案 0 :(得分:1)

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

更改调用行
seconds = int(diff.total_seconds())

seconds = int(total_seconds(diff))

或类似的东西。