python - 使用Python插入InfluxDb错误: 'datetime.timedelta' object has no attribute 'total_seconds'

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

最佳答案

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

seconds = int(diff.total_seconds())

seconds = int(total_seconds(diff))

或类似的东西。

关于python - 使用Python插入InfluxDb错误: 'datetime.timedelta' object has no attribute 'total_seconds' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42645787/

相关文章:

Python:我应该在这里使用委托(delegate)还是继承?

python - Django 如何知道呈现表单字段的顺序?

mysql - 从一系列日期计算每周数据

clojure - 如何在 Clojure 中获取 Unix 时间戳?

python - 在 Python 中将 long 从寄存器转换为 char 数组

python - 如何在不使用 .get_attribute() 的情况下使用 Selenium python 获取属性

java - 以毫秒为单位的时间表示标准的名称

java - 如何将日期时间数据字符串转换为 LocalDate?

Mysql 间隔新年后不起作用

javascript - Date.getTime() 在 IE11 中为 ISO/Twitter API 日期返回 NaN