所以我有一个使用以下导入的脚本:
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]
转换为unix时间,这是一个看起来像"23/03/2015 00:00"
(从csv读取)的日期字符串。
这就是代码部分的样子:
{"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
- 我做错了什么?
答案 0 :(得分:1)
查看你的代码:某个地方你可能已经声明了一个名为time
的变量,它是一个字符串。它试图在该变量上调用mktime
,这就是您的错误引用str
对象的原因。
解决此问题的最简单方法是将time
变量的名称更改为其他名称。如果您想在不更改该变量名称的情况下解决问题,可以使用不同的名称导入time
,如下所示:
import time as timelibrary
然后拨打timelibrary.mktime
。