无法将日期字符串转换为 unix 时间戳

Having trouble converting a date string to a unix timestamp

所以我有一个使用以下导入的脚本:

import sys
import os.path
import requests
import json
import csv
import glob2
import shutil
from time import sleep
from time import gmtime, strftime
import time
from datetime import datetime

我正在尝试将 row[15] 是一个看起来像 "23/03/2015 00:00"(从 csv 读取)的日期字符串转换为 unix 时间。

这部分代码如下所示:

{"name":"referral_date", "value": time.mktime(datetime.strptime(row[15], "%d/%m/%Y %H:%S").timetuple()) }

每次我尝试,它都会返回:

AttributeError: 'str' object has no attribute 'mktime'

然而,在单独的测试文件中,我尝试了以下操作:

import time
from datetime import datetime

mylist = ["23/03/2015 00:00"]
test = time.mktime(datetime.strptime(mylist[0], "%d/%m/%Y %H:%S").timetuple())
print(test)

如您所料,结果是 1427031000.0 - 我做错了什么?

查看您的代码:您可能在某处声明了一个名为 time 的变量,它是一个字符串。它试图在该变量上调用 mktime,这就是为什么您的错误指的是 str 对象。

解决此问题的最简单方法是将 time 变量的名称更改为其他名称。如果您想在不更改该变量名称的情况下解决问题,您可以使用不同的名称导入 time,如下所示:

import time as timelibrary

然后调用timelibrary.mktime.