【问题标题】:How to convert datetime object to float? AttributeError: 'datetime.datetime' object has no attribute 'datetime_to_float'如何将日期时间对象转换为浮点数? AttributeError:“datetime.datetime”对象没有属性“datetime_to_float”
【发布时间】:2020-11-17 08:01:49
【问题描述】:

我有如下形状的日期时间数据:

yyyy-mm-dd hh:minmin:secsec + hh:minmin

比如这个:2020-02-01 01:00:00+01:00

我现在想将其转换为浮点数。我使用了我找到这个问题的解决方案的功能:python datetime to float with millisecond precision

def datetime_to_float(d):
    return d.timestamp()

我使用以下代码将此函数应用于我的日期时间对象:

time_in_float = []

for i in time:
    time_in_float.append(i.datetime_to_float())

得到了这个错误:

    ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-11-f6272033e480> in <module>()
      2 
      3 for i in time:
----> 4     time_in_float.append(i.datetime_to_float())
      5 

AttributeError: 'datetime.datetime' object has no attribute 'datetime_to_float'

我需要在这里改变什么?

非常感谢!

【问题讨论】:

  • 什么是time?正如@leuchtum 回答的那样,你调用你的函数就好像它是一个类的方法,这在这里似乎不适用。
  • time是一个包含我所有日期时间对象的列表。
  • 定义函数不会向datetime 类添加方法。无论如何,您根本不需要该功能。将time_in_float.append(i.datetime_to_float()) 更改为time_in_float.append(i.timestamp())
  • 为什么不直接time_in_float = [t.timestamp() for t in time]

标签: python datetime error-handling


【解决方案1】:

您需要在循环中执行time_in_float.append(datetime_to_float(i))

【讨论】:

    【解决方案2】:

    你定义了一个函数,你需要将你的 datetime.datetime 对象作为参数传递,而不是期望将函数作为方法应用

    def datetime_to_float(d):
        return d.timestamp()
    
    
    time_in_float = []
    
    for i in time:
        time_in_float.append(datetime_to_float(i))
    

    但是没有必要定义一个只会让你的代码更模糊的函数,所以这应该没问题:

    time_in_float = []
    
    for i in time:
        time_in_float.append(i.timestamp())
    

    甚至是列表理解

    time_in_float = [(i.timestamp() for i in time]
    

    所有这些都假设i 是 datetime.datetimeobject and notstr`

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2019-06-16
      相关资源
      最近更新 更多