Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 属性错误:';列表';对象没有属性';散光区';_Python_Python 2.7 - Fatal编程技术网

Python 属性错误:';列表';对象没有属性';散光区';

Python 属性错误:';列表';对象没有属性';散光区';,python,python-2.7,Python,Python 2.7,我的python脚本: import ftplib import hashlib import httplib import pytz from datetime import datetime import urllib from pytz import timezone import os.path, time import glob def ftphttp(): files = glob.glob('Desktop/images/*.png') ts = map(os.path.ge

我的python脚本:

import ftplib
import hashlib
import httplib
import pytz
from datetime import datetime
import urllib
from pytz import timezone
import os.path, time
import glob

def ftphttp():
 files = glob.glob('Desktop/images/*.png')
 ts = map(os.path.getmtime, files)
 dts = map(datetime.fromtimestamp, ts)
 print ts

 timeZone= timezone('Asia/Singapore')
 #converting the timestamp in ISOdatetime format
 localtime = dts.astimezone(timeZone).isoformat()
我试图得到多个文件的时间戳。我可以打印出文件夹中的所有文件

 [1467910949.379998, 1466578005.0, 1466528946.0]
但它也提示我这个关于时区的错误。有人有什么想法吗

Traceback (most recent call last):
 File "<pyshell#76>", line 1, in <module>
 ftphttp()
File "/home/kevin403/Testtimeloop.py", line 22, in ftphttp
 localtime = dts.astimezone(timeZone).isoformat()
AttributeError: 'list' object has no attribute 'astimezone'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ftphttp()
ftphttp中的文件“/home/kevin403/Testtimeloop.py”,第22行
localtime=dts.astimezone(timeZone).isoformat()
AttributeError:“list”对象没有属性“astimezone”

您试图调用对象列表上的方法,而不是列表中的对象。请尝试对第一个对象调用该方法:

localtime = dts[0].astimezone(timeZone).isoformat()
或映射列表以获得iso格式的所有时间戳:

localtimes = map(lambda x: x.astimezone(timeZone).isoformat(), dts)

dts
是时区列表。所以你需要做:

[ts.astimezone(timeZone) for ts in dts]

这将为您提供三个时区的列表

dts
是一个
列表
(此处由
map
返回),您正在其上调用
astimezone
,这是一种它没有的方法。虽然没有关联,但我强烈建议使用标准的4个空格缩进。我尝试过,但出现了以下错误:ValueError:astimezone()不能应用于幼稚的datetime@AlvinWee这是另一个问题,这里似乎有答案